getJSON错误:资源解释为脚本,但使用MIME类型text / plain进行传输

时间:2012-12-07 09:10:00

标签: ajax json jsonp

我需要从这里获取一个json文件:

https://raw.github.com/Yelp/yelp-api/master/category_lists/en/category.json

但是,我一直收到错误:

资源解释为脚本,但使用MIME类型text / plain

进行传输

我试图通过以下方式获取文件:

$.ajax({
    url : 'https://raw.github.com/Yelp/yelp-api/master/category_lists/en/category.json',
    dataType : 'jsonp',
    success: function (data) {
        alert("here");
    },
    error: function () { alert("Error reading category.json");}
});

有解决方法吗?感谢。

1 个答案:

答案 0 :(得分:2)

因为Response Headers显示收到的内容是

Content-Type: text/plain; charset=utf-8

并且您的代码需要来自网址的JSON响应。这就是你得到这个错误的原因。

解决方案:

您可以做的一件事是,您可以将响应加载为text/plain,然后通过

将其转换为json对象
var obj = $.parseJSON(yourString);

更新代码:

好吧,您可以通过从您自己的域加载远程响应来避免Access-Control-Allow-Origin错误,这将充当代理服务器并且它将为您加载远程资源

$.ajax({
    url : url, // url on your domain, that will load the remote response for you
    dataType : 'html', // load the response as plain/html
    success: function (data) {
        var obj = $.parseJSON(data); // convert the received response to a JSON object
    }
});​