ESP8266 -- stray commands with AJAX on reload

I'm running a server, serving a simple webpage. The page has buttons forming a keypad that make simple Ajax calls to the server, like this:

<button class="push white-outline" onclick="makeAjaxCall('button_1')">
        1
     </button>

The makeAjaxCall function is very simple, too:

    function makeAjaxCall(url){$.ajax({"url":url})}

The server listens for this, and does something, like this:

   server.on("/button_1", [](){
       Serial.println("User has entered 1");
       server.send(200, "text/plain", "User has entered 0");
    });

(Fwiw, the server is an on ESP8266, running Arduino IDE.)

What I've noticed is that sometimes, when I refresh the page manually, the last Ajax call, or last several Ajax calls, are repeated. So I push 1, 2, 3, 4, 5, 6, and then refresh, the page will refresh, but all those calls will be made again. This seems to happen somewhat sporadically and unpredictably. Also, if multiple calls are repeated, they can get scrambled around. And if the phenomenon happens on one refresh, and I refresh again without making any new Ajax calls, then the phenomenon repeats (though the calls might be scrambled around yet again).

So a typical serial output might look like this:

  User has entered 1  //Manually entered in browser on page
    User has entered 2  //Manually entered in browser on page
    User has entered 3  //Manually entered in browser on page
    Refresh page        //Refresh in browser
    User has entered 2  //Appears on its own at time of refresh
    User has entered 3  //Appears on its own at time of refresh
    User has entered 1  //Appears on its own at time of refresh
    Refresh page        //Refresh in browser
    User has entered 1  //Appears on its own at time of refresh
    User has entered 2  //Appears on its own at time of refresh
    User has entered 3  //Appears on its own at time of refresh

Note that the erroneous calls don't come in the same order after the two refreshes. Again, this doesn't happen after every refresh.

Is there something about Ajax that could explain this? Could it be a browser issue? (I'm testing this in iOS Safari and macOS Safari.)

If I make these calls and then wait, where could they even be stored for this to happen? Something must remember to repeat them. Would it be the server? Would it be the browser?

Could it be a hardware issue? (Might the board itself keep this in some buffer somewhere? That's a little out of my league.)

Any idea what this might be?

An ajax problem. Go ask about your mysterious code on an ajax forum. Be sure not to post any code there, either.

PaulS:
An ajax problem. Go ask about your mysterious code on an ajax forum. Be sure not to post any code there, either.

Thanks, I really appreciate your input. I've updated the code. I'm wondering if it might be a hardware problem, and whether any other users of ESP8266 have encountered it before. The code is pretty simple, and executes without problems, so I'm not sure what might be affecting it there. If you have any suggestions, I'd be really grateful!

Posting snippets of code is a good way to get admonished on the forum, especially when prefixed with statements like "so a typical serial output might look like this".
Likewise, it is not polite to edit your original post after it has been replied to, since it causes confusion to other readers and those trying to help you.

That being said, and based on the limited information available I would make a first guess that it could be some form of caching that the browser is using. As a test, add the parameter method: "POST" to your AJAX call. There should be no caching in the case of POST requests, and therefore no spurious reloads.