2012-06-07 63 views
2

在我的ajax響應中使用unparseable cruftajax轉換器和IE7

工程很好,除了IE7引發故障。任何想法爲什麼失敗?

Ajax調用:

$.ajax({ 
     type: "POST", 
     url: "js/zipcodeLookup.json", //mock json response 
     contentType: "application/json", 
     dataType:"text json", 
     data: "{postalcode: '" + $(myField).val() + "', country: '" + myCountry + "'}", 
     success: function(data) { 
      //do something here 

     }, 
     error: function(){ 
     alert('failure'); 
     } 

    }); 

AJAX轉換器:

$.ajaxSetup({ 
      converters: { "text json": function (stringData) { 
         return JSON.parse(stringData.replace('for(;;);', '')); 
      } } 
}); 

和JSON:

for(;;);{ 
    "isError": "false", 
    "city": "Springfield", 
    "juris": "IL" 
} 

編輯

正確的答案是,我愚蠢地忽略了我的解析方法 - 使用jQuery.parseJSON()代替!

回答

3

IE < 8對JSON沒有本機支持。你有任何回退機制的IE7?

對於沒有原生JSON支持的瀏覽器,你應該使用this

您可以實現這樣的

<script>window.JSON|| 
    document.write("<script src='js/json2.js'>\x3C/script>") 
</script> 
+0

我的一部分愚蠢的監督後備機制 - 我把轉換器關爲例,忘了將其更改爲'jQuery.parseJSON()'。感謝幫助我認識到這一點 – Jason