我对jQuery ajax有点问题。 我想将POST发送到.php文件,然后更改当前的URL。我尝试了以下代码:
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script>
window.onload = function () {
$.ajax({
type: "POST",
url: "sample.php",
data: {'username': "STRING"},
timeout: 1000,
complete: function(){
window.location.href = 'http://127.0.0.1/sample/another.php';
}
});
}
</script>
因此,正如我在chrome开发人员工具网络选项卡中看到的那样,没有执行POST。虽然URL已更改为another.php
你能告诉我我做错了什么或我如何解决这个问题?
答案 0 :(得分:2)
使用成功而非完整
$.ajax({
type: "POST",
url: "sample.php",
data: {'username': "STRING"},
timeout: 1000,
success : function(){
window.location.href = 'http://127.0.0.1/sample/another.php';
}
});
答案 1 :(得分:0)
你永远不会看到POST。导致url更改并记住another.php没有发出任何AJAX请求!所以你永远都找不到任何东西。尝试将成功方法中的JS代码更改为类似警报的内容,以了解它是否有效!然后你可能会在控制台中找到POST方法!
答案 2 :(得分:0)
或者,您也可以使用.done()。您也可以考虑在自执行函数内部而不是window.onload事件中进行范围限定。
(function($){
// Make an object for your param values.
var ajaxData = {
username: 'STRING',
anotherParam: 'STRING',
andanotherParam: 'STRING',
yetanotherParam: 'STRING'
};
$.ajax({
type: "POST",
url: "sample.php",
data: ajaxData
}).done(function(){
window.location.href = 'http://127.0.0.1/sample/another.php';
}).fail(function(jqXHR, textStatus) {
alert( "Request failed: " + textStatus );
});
}(jQuery));