jQuery.getJSON 不适用于 Twitter
谁能告诉我为什么这个 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');
});
即使使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要将回调参数附加到 url 中,以便它成为 jsonp 调用。
You need to append a callback parameter to the url so that it becomes a jsonp call.
这两个示例之间的区别在于 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.
您的网址中没有 JSONP 参数
You do not have the JSONP parameter in the url