2

在我的 ajax 响应中使用无法解析的内容。

效果很好,除了 IE7 会引发失败。关于为什么失败的任何想法?

阿贾克斯调用:

$.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()改用!

4

1 回答 1

3

IE < 8 没有对JSON. 你有 IE7 的后备机制吗?

对于没有原生 JSON 支持的浏览器,你应该使用这个

您可以实现这样的后备机制

<script>window.JSON|| 
    document.write("<script src='js/json2.js'>\x3C/script>")
</script>
于 2012-06-07T17:10:39.833 回答