我正试图为一个在chrome、firefox和最新ie中工作的表单做一篇ajax文章。在ie9/8中,它似乎失败了,并出现了500个错误。
ajax帖子是跨域的,我正在使用https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest进行跨域请求(ajax get似乎可以在ie9/ie8中工作)。
这是一个.NET项目,如果有帮助的话。我确实读到了一个可能的解决方案是添加:
<meta http-equiv="X-UA-Compatible" content="IE=9" />
在顶部,但这并没有解决任何问题。
这是我的示例代码的帖子:
var submitEmailMe = $("button#emailme_form_submit");
$(submitEmailMe).unbind('click').bind('click', function(e) {
if ($('#email_form').parsley().validate()) {
emailMeSubmit();
}
var emailBtnState = $(this);
emailBtnState.prop('disabled',true);
window.setTimeout(function(){
emailBtnState.prop('disabled',false);
},5000);
e.preventDefault();
});
function emailMeSubmit() {
$.ajax({
type: 'POST',
url: "http://www.externallink/EmailRetailer",
data: $("#email_form").serialize(),
success: function( response ) {
$('#email_form').fadeOut(function() {
$('.thanks').fadeIn();
});
}
});
}
嘿,所以我解决了这个问题,以防其他人和我有同样的问题。
因此,在https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest他们指定设置contentType:"text/plain",但这仍然不起作用。
我发现,如果我将表单从'POST'更改为'GET'那么该表单实际上是使用xdomainrequest插件跨源提交给ie8和ie9的。
这可能不是最优雅的解决方案,但它确实有效。