2

我正在尝试向此 URL发出 AJAX GET 请求并处理 JSON 响应。如果您直接访问该 URL,它就可以工作。我也尝试通过Hurl It运行它,它也可以工作

我不知道为什么我不能通过 jQuery 向它发出JSON/JSONP请求。

我最初尝试做出 JSON 响应,但得到:

XMLHttpRequest cannot load http://hndroidapi.appspot.com/news/format/json/page/. Origin http://hackernews.dev is not allowed by Access-Control-Allow-Origin.

因此,我尝试了 JSONP,并得到

Uncaught SyntaxError: Unexpected token :  hndroidapi.appspot.com:1

第 1 行是整个 JSON 响应,在一行中,但没有包含在回调中。因此,这个 API 似乎不支持 JSONP。

因此,我能做些什么来解决这个问题吗?不幸的是,我有点难过,似乎没有办法解决这个问题。

我的代码如下:

var ajaxReq = $.ajax({
  url: "http://hndroidapi.appspot.com/news/format/json/page/",
  dataType: "jsonp" 
});
ajaxReq.done(function(d) {
  console.log("DONE", d);
});
ajaxReq.error(function(d) {
  console.log("ERROR", d);
});

非常感谢任何帮助!

4

3 回答 3

0

出于安全原因,您不能向提供网页的站点以外的站点发出 AJAX 请求。

于 2012-08-16T19:13:59.087 回答
0

尝试使用http://api.jquery.com/jQuery.getJSON/,不确定。

于 2012-08-16T19:17:43.763 回答
0

该api绝对不支持JSONP(除非我遗漏了一些东西,对python不太熟悉):https ://github.com/glebpopov/Hacker-News-Droid-API/blob/master/Formatter.py你唯一的选择此时是使用 YQL 或服务器端代理

于 2012-08-16T19:29:34.860 回答