jQueryを利用してAjaxでデータ登録をしたいときに、alert()を呼び出す場合は、問題なくデータを登録することができますが、alert()を呼び出さない場合はデータの登録に失敗します。

$.ajax({
    url: 'https://xxx',
    type: 'POST',
    dataType: 'json',
    data: JSON.stringify(form_data),
})
.done(function(data){
    console.log("登録完了")
}).fail(function(jqXHR, textStatus){
    console.log("登録失敗")
});
alert("END") // ここをコメントアウトするとデータは登録できない

このalert()の部分がconsole.log()でもsetTimeout()でもだめで、alert()でなければ動きません。なぜalert()のみがうまく動くのかわかりません。

ちなみに、.done().fail()はデータが登録できたorできなかったにかかわらず、呼び出されません。ここも不思議でなりません。

$.ajax()の中に以下のようにしてもログは出ませんでした。

$.ajax()({
    success: function(result){
        console.log('my message' + result);
    }
})

話が脱線しましたが、なぜalert()を呼び出す場合は登録が成功するかがわかりません。

回答をお待ちしております。