【问题标题】:ajax converters and IE7ajax 转换器和 IE7
【发布时间】:2012-06-07 17:07:53
【问题描述】:

在我的 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()

【问题讨论】:

    标签: jquery ajax json parsing converters


    【解决方案1】:

    IE JSON 的原生支持。你们有 IE7 的后备机制吗?

    对于不支持原生 JSON 的浏览器,您应该使用 this

    你可以像这样实现一个后备机制

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

    【讨论】:

    • 我的愚蠢疏忽 - 我将转换器从示例中取出,却忘记将其更改为 jQuery.parseJSON()。感谢您帮助我意识到这一点
    猜你喜欢
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    相关资源
    最近更新 更多