以下代码的目的是在数据库中添加新条目。没有location.reload(true);它工作正常。但是,我想重新加载页面。包括location.reload(true); line停止添加的新条目。有人有什么想法吗?在POST请求有机会开展业务之前是否重新加载?请记住:没有那一行,它可以100%正常工作。
$('#submitNewLocationButton').click(function() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4)
{
if(xhr.status == 200)
{
document.ajax.dyn.value = "Received: " + xhr.responseText;
}
else
{
document.ajax.dyn.value = "Error code: " + xhr.status;
}
}
};
var param0 = "city=" + $('input[id=newRowCellInput_0]').val();
var param1 = "extension=" + $('input[id=newRowCellInput_1]').val();
xhr.open("POST", "insert.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(param0 + "&" + param1);
$('#newRow').remove();
$('#addNewLocationButton').removeAttr('disabled');
$('#submitNewLocationButton').css('display', 'none');
location.reload(true);
});
答案 0 :(得分:1)
试试这个,使用onload
XMLHttpRequest
事件
xhr.onload = function () {
location.reload(true);
};
或者您可以使用
xhr.onreadystatechange = function (aEvt) {
location.reload(true);
};
onload
中添加了两个XMLHttpRequest 2
相同的onreadystatechange
,而{{1}}自原始规格以来一直存在。
答案 1 :(得分:1)
为什么这么复杂? 使用jQuery,您可以通过更简单的方式实现目标 试试这个:
$.post("insert.php?"+$(form).serialize())
.done(function(data) {
alert("Data Loaded: " + data);
location.reload(true);
})
.fail(function() {
alert("Error!");
});
无论如何,请查看jQuery.post()和jQuery.ajax()