jQuery post以readyState:0响应,状态:0
全部。我使用的是jquery版本1.6.2。 我执行如下ajax调用:jQuery post以readyState:0响应,状态:0,jquery,ajax,http-post,Jquery,Ajax,Http Post,全部。我使用的是jquery版本1.6.2。 我执行如下ajax调用: var jqxhr = $j.post(myPHP, function() { alert("success"); }) .success(function() { alert("second success"); }) .error(function(data) { alert(JSON.stringify(data)); }) .co
var jqxhr = $j.post(myPHP, function() {
alert("success");
})
.success(function() { alert("second success"); })
.error(function(data) { alert(JSON.stringify(data)); })
.complete(function() { alert("complete"); });
脚本、运行和显示错误已完成。有些人可能认为…myPHP有一些问题,但myPHP总是显示:
{"sayHi":"hihi"}
因此,当我打电话给..时,我去Firebug查看链接是否有任何问题:
它显示状态为200的帖子url,这是正常的。另外,我可以通过Firebug看到响应。。。。
但问题是…为什么jquery会让我出错…:
下面是错误消息:
{"readyState":0,"responseText":"","status":0,"statusText":"error"}
您忘记告诉jQuery服务器正在返回JSON:
var jqxhr = $j.post(myPHP, function() {
alert("success");
}, "json") // here
.success(function() { alert("second success"); })
.error(function(data) { alert(JSON.stringify(data)); })
.complete(function() { alert("complete"); });
对我来说,这个问题是由跨域问题引起的。 所以我有一个本地html文件(
c:\test.html
),并试图从服务器(localhost/servlet)获取数据。
当把html放到服务器上时,问题就解决了。在我的例子中,这不是因为跨域。我没有使用e.PreventDefault()。请参见如果浏览器在XHR请求仍在进行时切换网页(用户单击了链接、后退按钮等),则此XHR请求将被取消,并显示您的错误
请看下面的博文,其中对问题进行了深入解释:仍然错误,顺便说一句,如果返回的是纯文本,我是否需要提及?您是否在服务器上执行
json\u encode()
?不,你不需要提到“文本”。解决了,我知道会发生:跨域ajax调用。。。。相关:它是关于跨站点脚本的: