jQuery AJAX函数在IE中无法正常运行?

时间:2012-09-20 17:32:19

标签: javascript jquery ajax post

function createLead(values) {
    var url = "/api/v1/createlead/?apikey=XXXX-XXXX-XXXX-XXXX";
    //debugger;
    $.ajax({
        type : "POST",
        contentType : "application/x-www-form-urlencoded; charset=UTF-8",
        url : url,
        data : values,
        success: function (result) {
            result = $.parseJSON(result);
            if (result.redirect) {

                $(window).trigger('googleEvent' , 'regFailure');
                window.location.href = values.returnUrl;
                return;
            }
            else if (result.status === "OK" ) {

                if (result.data.isPixelToBeFired){
                    $(window).trigger('googleEvent' , 'pixelFire'); 
                }
                else {
                    $(window).trigger('googleEvent', 'noPixelFire');
                }

                olp_sLeadId = result.data.leadId;
                olp_sPathId = result.data.pathId;
                $(window).trigger('googleEvent', 'regSuccess');
                window.location = "path.html?curPathId=" + olp_sPathId
                        + "&curLeadId=" + olp_sLeadId; // Enter the path
            } 

            else {
                // console.log('FAIL' , result , values);
                $(window).trigger('googleEvent' , 'regFailue');
                window.location.href = values.returnUrl;
                return;
            }
        },
        statusCode: {
            404: function() {
                $(window).trigger('googleEvent' , 'createLead404');
                window.location.href = values.returnUrl;
                //console.log('Something is seriously wrong');
                return false;
            }
        },
        failure: function (result) {
            $(window).trigger('googleEvent' , 'createLeadFailure');
            window.location.href = values.returnUrl;
            //console.log('Something is seriously wrong');
            return false;
        }
    });
}

我一直在这里摸不着头脑,所有版本的IE似乎都有这个电话的问题。这里有一些重要的信息:

  1. values是一个数据对象,我可以验证它是否有数据。

  2. 所有窗口.trigger功能都用于Google分析跟踪,它们在代码的其他几个部分中使用,不会出现问题。

  3. 在IE中,函数似乎奇怪地间隔,所有其他函数排列正确,但这个函数似乎奇怪地对齐,让我想知道某些东西是不是正确解析?

  4. 成功功能似乎未运行,故障和statusCode功能完全被忽略。这让我想知道这不是jQuery方法的问题,但它们在代码的其他地方起作用了吗?

1 个答案:

答案 0 :(得分:0)

我猜缓存存在问题。 IE自动缓存了ajax请求。要解决此问题,请在$ .ajax代码中设置选项cache: false

示例:

$.ajax({
    type : "POST",
    contentType : "application/x-www-form-urlencoded; charset=UTF-8",
    url : url,
    data : values,
    cache : false,
    // existing stuff
});

希望这会有所帮助!!