我有以下AJAX功能:
function ajaxDesignerBrandInfo()
{
var D = wrapFormValues('#designer-brand-form');
var recursiveEncoded = $.param(D);
/*
$.post("/api/designer_brand/", { data : recursiveEncoded }, function(data)
{
var results = $.parseJSON(data);
window.location = "/register/designer-product/";
});*/
$.ajax( { type: "POST",
url: "/api/designer_brand/",
data : { data : recursiveEncoded },
success: function(data) {
console.log(data);
setTimeout(function() {
window.location = "/register/designer-product/";
},0);
},
error: function (xhr, ajaxOptions, thrownError ){
alert(xhr.status);
alert(thrownError); }
});
return false;
}
以及相应的表格
<form id="designer-brand-form" name="form" method="post" action="" onSubmit="ajaxDesignerBrandInfo(); return false;">
....
</form>
提交在Chrome,Safari和FireFox上非常有效,让我感动
/注册/设计者产品/
正确,但在IE9中,提交似乎
永远不要进入服务器
清除表单并重定向回我当前所在的页面(此表单存在)。
我可以通过FireFox确认没有导致此失败的javascript错误。有时它确实有效,但我似乎总是以同样的方式重现这个错误
有人请解释WTF正在进行中吗?
由于
答案 0 :(得分:2)
我相信你的问题是IE默默地抛出了一个Javascript错误。仅仅因为Firefox没有抛出JS错误,并不意味着IE不会。检查IE中的JS错误(请参阅this link或this one)。找到错误,你就会找到解决方案。
此外,请尝试Fiddler,它是一个独立的Windows工具,充当代理服务器,并会告诉您AJAX流量的确切含义。
您的具体问题可能是console.log
来电。这是一个Firebug的东西(Chrome支持)。我认为IE不会,除非你采取措施添加它。请参阅:What happened to console.log in IE8?