1

我需要从这里获取一个 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");}
});

有没有解决的办法?谢谢。

4

1 回答 1

2

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

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

并且您的代码需要JSON来自 url 的响应。这就是您收到该错误的原因。

解决方案:

您可以做的一件事是您可以加载响应,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
    }
});​
于 2012-12-07T09:23:01.120 回答