我试图将表单从我的网站发布到服务器(不是同一个域)。 使用Chrome,Firefox和IE10 +,一切都运行良好,但我也必须使用IE9。
这是我的代码
$("#sendform").click(function() {
// Content
var infosForm = {};
infosForm.firstname = $('input[name=firstname]')[0].value;
infosForm.name = $('input[name=name]')[0].value;
infosForm.phone = $('input[name=tel]')[0].value;
infosForm.mail = $('input[name=mail]')[0].value;
infosForm.commentaire = $('textarea[name=comment]')[0].value;
var isChecked = $('.messageCheckbox:checked').val();
if (isChecked == "on")
{
infosForm.isNewsletter = "on";
}
else
{
infosForm.isNewsletter = "off";
}
$.ajax({
url:'http://my.website.com/form.ashx',
type:'post',
data:infosForm,
cache:false, //normaly this is quite useless since it's a post, but It's known to help with IE... still not.
crossDomain:true,
//showing feedback
success:function(){
$("#contact form").hide();
$("#contact form").fadeIn('slow').html("<p>Success</p>");
//trackEvent();
},
error:function(){
$("#contact form").hide();
$("#contact form").fadeIn('slow').html("<p>Error</p>");
}
});
});
根据提琴手的说法,IE9似乎没有发送任何请求并直接显示错误信息。
注意:这里使用的是jQuery 1.8.3。
答案 0 :(得分:1)
IE8 / 9不支持jQuery使用的XmlHttpRequest对象,因此需要使用对象XDomainRequest。
这样的插件:xdr.js会让它发挥作用。
答案 1 :(得分:-2)
在这一行
var isChecked = $('。messageCheckbox:checked')。val()
缺少分号(;)。