2012-09-20 4 views
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의 모든 버전이이 호출에 문제가있는 것 같다. 여기에 몇 가지 중요한 정보가 있습니다.jQuery AJAX 함수가 IE에서 제대로 실행되지 않습니까?

  1. 값은 데이터 개체이며 데이터가 있는지 확인할 수 있습니다.

  2. 모든 창. 트리거 기능은 Google 애널리틱스 추적 용이며 코드의 다른 여러 부분에서 사용되며 문제가되지 않습니다.

  3. IE에서는 함수가 이상하게 배열되어있는 것처럼 보입니다. 다른 모든 함수는 적절하게 정렬되지만,이 함수는 기묘하게 정렬되어있어 뭔가 파싱이되지 않는 것인지 궁금합니다.

  4. 성공 함수가 실행되지 않는 것으로 나타나며 실패 및 statusCode 함수는 완전히 무시됩니다. 이것은 jQuery 메소드의 문제가 아닌지 의심 스럽지만 코드의 다른 곳에서 기능을 하는가?

답변

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 
}); 

이 도움이되기를 바랍니다!

관련 문제