我有一个执行动态计算的表单,并同时发送给Pardot。 ajax代码适用于除IE之外的所有浏览器。它有什么理由不在IE中工作吗?这是代码:
$('#greenQuote').submit(function(e){
e.preventDefault();
premium();
var theData = $(this).serialize();
$.post('http://go.mysite.com/l/34381/2014-05-19/hr8w', theData).success(function(data){
});
});
我还添加了以下代码,并在查看对其他类似问题的回复后进行了测试,但没有运气。它被放置在" $。帖子上方。"
$.ajaxSetup({cache:false})
答案 0 :(得分:0)
对原始代码进行了以下编辑。我还在页面中添加了一个额外的脚本。此代码由CDNJS托管,可在以下位置找到:http://cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.2/jquery.xdomainrequest.min.js。
$('#greenQuote').submit(function(e){
e.preventDefault();
premium();
var theData = $(this).serialize();
//Eliminates "No Transport" Error in ie
jQuery.support.cors = true;
$.ajaxSetup({cache:false});
if('withCredentials' in new XMLHttpRequest())
{
//alert("CORS supported (XHR)");
$.post('http://go.mysite.com/l/34381/2014-05-19/hr8w', theData);
}
else if(typeof XDomainRequest !== "undefined")
{
//alert("CORS supported (XDR)");
$.ajax({
type: 'POST',
url: 'http://go.mysite.com/l/34381/2014-05-19/hr8w',
data: theData,
dataType: 'json'
});
}
});
答案 1 :(得分:-2)
不是答案,但想详细说明我的评论。 如果你这样做会发生什么......
$('#greenQuote').submit(function(e){
e.preventDefault();
$.post('http://go.mysite.com/l/34381/2014-05-19/hr8w', $(this).serialize()).success(function(data){
console.log(data);
});
});
我只是问,如果JS没有收到你的ajax请求,你的premium()
方法中可能会有一些东西导致系统放弃。