javascript – jQuery .getJSON Firefox 3语法错误未定义

前端之家收集整理的这篇文章主要介绍了javascript – jQuery .getJSON Firefox 3语法错误未定义前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在运行此代码时,Firefox 3中会出现语法错误(未定义的第1行test.js).警报工作正常(它显示“工作”),但我不知道为什么我收到语法错误.

jQuery代码

$.getJSON("json/test.js",function(data) {
    alert(data[0].test);
});

test.js:

[{"test": "work"}]

有任何想法吗?我正在为一个更大的.js文件工作,但我缩小到这个代码.什么是疯狂的,如果我用远程路径替换本地文件没有语法错误(这里是一个例子):

http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?

解决方法

我发现一个解决方案来踢这个错误
$.ajaxSetup({'beforeSend': function(xhr){
    if (xhr.overrideMimeType)
        xhr.overrideMimeType("text/plain");
    }
});

现在的解释:
在firefox 3(和我只有firefox三)中,每个文件都具有MIME类型的“text / xml”被解析和语法检查.如果您使用“[”]启动JSON,则会引发语法错误,如果以“{”这是“格式错误”(我的翻译为“nicht wohlgeformt”)开头).
如果我从本地脚本访问我的json文件 – 这个进度中没有包含服务器 – 我必须重写mime类型…也许你为这个文件设置了MIME类型错误

如何,添加这一小块代码将会从错误消息中保存

编辑:在jQuery 1.5.1或更高版本中,您可以使用mimeType选项来实现相同的效果.要将其设置为所有请求的默认值,请使用

$.ajaxSetup({ mimeType: "text/plain" });

您也可以直接使用$.ajax,即您的呼叫转换为

$.ajax({
    url: "json/test.js",dataType: "json",mimeType: "textPlain",success: function(data){
        alert(data[0].test);
    } });
原文链接:https://www.f2er.com/jquery/151668.html

猜你在找的jQuery相关文章