0
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 メソッドの問題ではなく、コードの他の場所で機能するのではないかと思います。

4

1 に答える 1

0

キャッシュに問題があると思います。IEは自動的にajaxリクエストをキャッシュしました。この問題を克服するcache: falseには、$。ajaxコードでオプションを設定します。

例 :

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

これがお役に立てば幸いです!!

于 2012-09-20T17:35:18.063 に答える