一个多星期把我的头发拉出来。
使用:
jQuery 1.9.1
使用类似于 JSON 示例的 malsup 表单插件:http: //malsup.com/jquery/form/#json
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" /> with of without same error
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Internet Explorer (8/9/10) 将随机中止 AJAX POST 请求(非常随机)
通过中止,我的意思是,“根本”没有通过 http 发送任何内容——它只是中止,然后让我泪流满面。
网络下的F12开发者工具读取:
网址我的网址是正确的
结果(中止)它的字面意思是(中止)
输入空白 - 这里实际上什么都没有
收到0B
耗时 202 毫秒
发起者(待定)它的字面意思是(待定)
打开请求的捕获:
请求标头为空
请求正文为空
一切都是空的
但是在 Timings 选项卡下,我注意到它按顺序显示 Wait Start Start Gap DOMContentLoaded (event) Load (Event)
应该 开始有两次?还是我以某种方式提交了两次请求,这是导致中止的原因。
我会说,成功的 POSTS在时间选项卡下启动了两次。
我也 console.log 错误并得到:
xmlhttprequest.ReadyState 4
xmlhttprequest.状态:12019
当我第二次单击提交时,它可以工作。客户不会喜欢这样...
$('#formId').ajaxForm( {
dataType : 'json',
cache: false,
beforeSend: beforeGenericPostForm,
success : FormResponse,
error: genericError
});
$('#formSubmitId').click(function(e){
e.preventDefault();
//perform some custom simple form validation - return false if problem
$('#formId').submit();
});
所以genericError被调用并给我上面的错误消息。
我可以 console.log 直到 beforeSend: beforeGenericPostForm, function 结束,然后它死/中止。
这是我多年来一直在寻找的东西,但找不到解决办法。
我的表单是标准 HTML 表单,我发布 application/x-www-form-urlencoded 并从服务器接收带有标题 application/json 的 JSON;字符集=utf-8
有没有人有任何线索或类似的问题?
或者这只是下面发布的一个标准错误,如果是这样,你如何解决它?
http://bugs.jquery.com/ticket/9352
如果您有任何建议,非常感谢,因为这个原因,从一年的发展到现在。