ajax转换器和IE7

时间:2012-06-07 17:07:54

标签: jquery ajax json parsing converters

在我的ajax回复中使用unparseable cruft

效果很好,除了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()

1 个答案:

答案 0 :(得分:3)

IE< 8对JSON没有原生支持。你有IE7的后备机制吗?

对于没有本机JSON支持的浏览器,您应该使用this

您可以实现像这样的回退机制

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