在我的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()
!
答案 0 :(得分:3)
IE< 8对JSON
没有原生支持。你有IE7的后备机制吗?
对于没有本机JSON支持的浏览器,您应该使用this库
您可以实现像这样的回退机制
<script>window.JSON||
document.write("<script src='js/json2.js'>\x3C/script>")
</script>