我需要链接2个帖子的结果并开始使用在http://api.jquery.com/jQuery.when/找到的延迟样本
var successFunction = function (event) { alert(event.readyState); };
var failedFunction = function (event) { alert(event.readyState); };
$.when($.ajax("/page1.php", type: 'POST'), $.ajax("/page2.php", type: 'POST'))
.then(successFunction , failedFunction );
就我而言,即使事件对象和chrome报告以下属性,failFunction也会一直触发:
readyState: 4
responseText: "OK"
status: 200
statusText: "OK"
使用以下表格时的结果相同:
$.when( $.ajax("/page1.php", type: 'POST'), $.ajax("/page2.php", type: 'POST'))
.then(successFunction)
.fail(failFunction);
什么是$。当寻找确定成功/失败?当readyState === 4和status === 200时,如何获取$ .when以触发successFunction?它是在寻找我不是从服务器发送的其他内容吗?
答案 0 :(得分:0)
jQuery在检查ajax请求是否成功时查找以下状态代码
status >= 200 && status < 300 || status === 304
除此之外的任何内容都将被视为不成功。
由于你有两个ajax请求,我怀疑其中一个是失败的。
尝试记录响应并查看哪个特定的响应失败。
$.when($.ajax("/page1.php", type: 'POST'), $.ajax("/page2.php", type: 'POST')).done(function(a1, a2){
/* arguments are [ "success", statusText, jqXHR ] */
console.log( a1[2] );
console.log( a2[2] );
});
答案 1 :(得分:0)
感谢您的帮助。我在每个.ajax调用中添加了一个错误:function(xhr,ajaxOptions,thrownError),这给了我更多详细信息。两者都返回相同的错误“Unexpected token O”,因为我正在返回“OK”。一旦我删除了退货,问题就消失了。没有机会尝试完成的技术,但我相信将来会有所帮助。