我遇到IE问题,大惊喜吧?我有一个webform,它将名称,电话和电子邮件提交给另一个域下的脚本。我是jquery.ajax提交表单。我也使用jquery.validate进行表单验证。姓名和电子邮件是必需的。手机是可选的。
当我在Chrome中提交表单时,效果非常好。我收到了感谢您的电子邮件,我的数据到达了另一个域的脚本。
当我在IE9中尝试相同的表单时,我填写所有字段并点击提交,它看起来像提交了(我收到表单所在的感谢信息),但没有数据进入服务和我也没有收到确认电子邮件 - 所以它实际上没有发布。
那么我怎样才能让这个脚本在IE7,8,9中运行。这是现在的脚本...当我在成功动作中取消注释警报时,我在IE中收到警报。它只是没有发布数据。我在这里看到了很多关于这个的帖子,但是我并没有以理解的方式将所有的部分组合在一起。
我听说这可以直接使用IE10开箱即用。
jQuery.validator.setDefaults({
submitHandler: function() {
var cons_info_component = jQuery("#cons_info_component").val();
var cons_mail_opt_in = jQuery("#cons_mail_opt_in").val();
var longnum = jQuery("#1540_6383_2_8347_1").val();
var survey_id = jQuery("#SURVEY_ID").val();
var cons_email_opt_in = jQuery("#cons_email_opt_in").val();
var cons_email_opt_in_requested = jQuery("#cons_email_opt_in_requested").val();
var cons_first_name = jQuery("input#cons_first_name").val();
var cons_last_name = jQuery("input#cons_last_name").val();
var cons_email = jQuery("input#cons_email").val();
var cons_phone = jQuery("input#cons_phone").val();
if(cons_phone === "PHONE NUMBER (OPTIONAL)") { cons_phone = ''; }
var ACTION_SUBMIT_SURVEY_RESPONSE = jQuery("#ACTION_SUBMIT_SURVEY_RESPONSE").val();
var dataString = 'cons_info_component='+cons_info_component+'&cons_mail_opt_in='+cons_mail_opt_in+'&1540_6383_2_8347='+longnum+'&SURVEY_ID='+survey_id+'&cons_first_name='+cons_first_name+'&cons_last_name='+cons_last_name+'&cons_email='+cons_email+'&cons_phone='+cons_phone+'&cons_email_opt_in='+cons_email_opt_in+'&cons_email_opt_in_requested='+cons_email_opt_in_requested+'&ACTION_SUBMIT_SURVEY_RESPONSE='+ACTION_SUBMIT_SURVEY_RESPONSE;
jQuery.ajax({
type: "POST",
url: "http://urlthatIsubmittoo.com/script/",
crossDomain: true,
cache: false,
data: dataString,
statusCode: {
404: function() {
//alert('page not found');
},
200: function() {
//alert('success');
}
},
success: function() {
//alert('submited');
},
complete: function() {
jQuery('div.convioform').html("<div class='tybox'></div>");
jQuery('div.convioform .tybox').html("<h5 class='webform-title'>Thank You</h5><p>You'll soon be receiving our e-mails and updates now.</p>");
}
}); // close .ajax line
},
});
答案 0 :(得分:2)
将其插入文件顶部(通过github / jaubourg):
if ( window.XDomainRequest ) {
jQuery.ajaxTransport(function( s ) {
if ( s.crossDomain && s.async ) {
if ( s.timeout ) {
s.xdrTimeout = s.timeout;
delete s.timeout;
}
var xdr;
return {
send: function( _, complete ) {
function callback( status, statusText, responses, responseHeaders ) {
xdr.onload = xdr.onerror = xdr.ontimeout = jQuery.noop;
xdr = undefined;
complete( status, statusText, responses, responseHeaders );
}
xdr = new XDomainRequest();
xdr.onload = function() {
callback( 200, "OK", { text: xdr.responseText }, "Content-Type: " + xdr.contentType );
};
xdr.onerror = function() {
callback( 404, "Not Found" );
};
xdr.onprogress = jQuery.noop;
xdr.ontimeout = function() {
callback( 0, "timeout" );
};
xdr.timeout = s.xdrTimeout || Number.MAX_VALUE;
xdr.open( s.type, s.url );
xdr.send( ( s.hasContent && s.data ) || null );
},
abort: function() {
if ( xdr ) {
xdr.onerror = jQuery.noop;
xdr.abort();
}
}
};
}
});
}