【发布时间】:2013-03-27 21:41:42
【问题描述】:
我正在尝试使用返回 JSON 但遇到一些麻烦的 Clipped API (http://clipped.me/api.html)。我正在使用 getJSON,在 Chrome 的 JS 控制台中我收到以下错误消息:
资源被解释为脚本,但使用 MIME 类型 text/html 传输:“http://clipped.me/algorithm/clippedapi.php?url=callback=jQuery1910859611126...emo-day-2013-still-looking-for-the-next-airbnb-or-dropbox/&_=1364420105379”。
未捕获的语法错误:意外的标识符
请求失败:解析器错误,错误:jQuery19108596111265942454_1364420105378 未被调用
这是我的 JS:
var clippedAPI = "http://clipped.me/algorithm/clippedapi.php?url=[URL]callback=?";
$.getJSON(clippedAPI, "http://pandodaily.com/2013/03/26/y-combinator-demo-day-2013-still-looking-for-the-next-airbnb-or-dropbox/" ).done(function(json) {
console.log("JSON Data: " + json.title );
}).fail(function(jqxhr, textStatus, error){
var err = textStatus + ', ' + error;
console.log("Request Failed: " + err);
});
这是我第一次尝试使用 API 或 JSON 制作东西,所以我真的不知道该怎么做。我试过谷歌搜索,但找不到任何东西。我实际发送的数据被我添加 callback=? 时出现的这个 jQuery 通知截断了?
【问题讨论】:
-
跨域请求需要使用JSONP。我建议使用
$.ajax()而不是像$.getJSON这样的快捷方法,因为您将对您正在尝试做的事情有更深入的了解。文档:api.jquery.com/jQuery.ajax -
@Jasper: 如果
callback在 URL 中,$.getJSON会发出 JSONP 请求。 -
如果您尝试使用 JSONP 进行跨域请求,并且端点不支持 JSONP(或 CORS),那么您就不走运了。
-
@FelixKling 嗯,很高兴知道,我仍然建议不要使用快捷方式。但是,嘿,有时你会学到一些东西:)。
-
谢谢,我试试看。
标签: javascript json api getjson