【问题标题】:jQuery AJAX function not running properly in IE?jQuery AJAX 函数在 IE 中无法正常运行?
【发布时间】:2012-09-20 17:32:18
【问题描述】:
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. 所有 window .trigger 函数都用于 Google 分析跟踪,它们用于代码的其他几个部分,不会出现问题。

  3. 在 IE 中,函数的间隔似乎很奇怪,所有其他函数都正确排列,但这个似乎奇怪地对齐,让我怀疑是不是解析不正确?

    李>
  4. success 函数似乎没有运行,failure 和 statusCode 函数被完全忽略。这让我想知道这是否不是 jQuery 方法的问题,但它们在代码的其他地方起作用?

【问题讨论】:

    标签: javascript jquery ajax post


    【解决方案1】:

    我猜缓存有问题。 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
    });
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多