Ajax不能在IE中用于表单发布

时间:2014-05-28 15:49:56

标签: jquery ajax internet-explorer

我有一个执行动态计算的表单,并同时发送给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})

2 个答案:

答案 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()方法中可能会有一些东西导致系统放弃。