jQuery.getJSON 不适用于 Twitter

发布于 2024-10-20 10:35:01 字数 929 浏览 2 评论 0原文

谁能告诉我为什么这个 jQuery 函数不起作用。它不会引发警报

$.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?',
  {
      screen_name: 'samajshekhar',
      count: '5',
  },
 function (data) {
      alert('hello world from twitter');
  });   

在 fiddler 中我可以看到预期的 JSON 已返回。

然而,当使用 jQuery 文档中的示例代码调用 flicker 的 api 时,它会按预期给出 alert

$.getJSON('http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?',
  {
    tags: 'cat',
    tagmode: 'any',
    format: 'json'
  },
  function(data) {
   alert('hello world from flicker');   
  });

这是 JS Bin 上的示例代码

即使使用 facebook 的图形 API,我也尝试过,仍然没有 alert

In 示例代码 我尝试对 facebook、twitter、flicker 进行 getJSON 调用,但仅引发闪烁调用的 alert

can any one please tell me why this jQuery function is not working. It raises no alert.

$.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?',
  {
      screen_name: 'samajshekhar',
      count: '5',
  },
 function (data) {
      alert('hello world from twitter');
  });   

In fiddler i can see that expected JSON has been returned.

However when calling flicker's api using the example code at jQuery documentation it gives an alert as expected

$.getJSON('http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?',
  {
    tags: 'cat',
    tagmode: 'any',
    format: 'json'
  },
  function(data) {
   alert('hello world from flicker');   
  });

Here is the sample code on JS Bin

I tried even with facebook's graph API still no alert

In sample code i tried getJSON calls to facebook,twitter,flicker and only the flicker's call's alert is raised.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

踏月而来 2024-10-27 10:35:01

您需要将回调参数附加到 url 中,以便它成为 jsonp 调用。

http://api.twitter.com/1/statuses/user_timeline.json?callback=?

You need to append a callback parameter to the url so that it becomes a jsonp call.

http://api.twitter.com/1/statuses/user_timeline.json?callback=?
微暖i 2024-10-27 10:35:01

这两个示例之间的区别在于 Flickr API 调用返回 JSONP 结果,而 Twitter API 调用返回 JSON 结果。由于响应是 JSON,Twitter 调用违反了同源策略,该策略阻止运行以下脚本:源自另一个域;另一方面,JSONP 响应不受此规则的约束。

正如其他用户所指出的,附加“?callback =?”请求 URL 和 Twitter API 响应将采用 JSONP 的形式。

The difference between these two examples is that the Flickr API call is returning a JSONP result, while the Twitter API call is returning a JSON result. The Twitter call, because the response is JSON, is violating the Same Origin Policy which prevents running scripts which originate from another domain; JSONP responses, on the other hand, are not governed by this rule.

As the other users have indicated, append '?callback=?' to the request URL and the Twitter API response will take the form of JSONP.

小…楫夜泊 2024-10-27 10:35:01

您的网址中没有 JSONP 参数

$.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?jsoncallback=?',

You do not have the JSONP parameter in the url

$.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?jsoncallback=?',
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文