0

我正在用 HTML 和 Javascript 编写一个简单的应用程序。我正在尝试通过 jQuery 的 .ajax() 方法检索我的 user_timeline。问题是我想用 XML 检索我的时间线,但我一直在这个简单的任务中失败。这是我的代码:

$.ajax({
        type: 'GET',
        dataType: 'xml',
        url: 'http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=stepanheller',
        success: function(data, textStatus, XMLHttpRequest) {
            console.log(data);
        },
        error: function(req, textStatus, error) {
            console.log('error: '+textStatus);
        }

});

奇怪的是,当我尝试完全相同的事情但使用 JSON 而不是 XML 时,脚本就可以工作了。

$.ajax({
        type: 'GET',
        dataType: 'jsonp',
        url: 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=stepanheller',
        success: function(data, textStatus, XMLHttpRequest) {
            console.log(data);
        },
        error: function(req, textStatus, error) {
            console.log('error: '+textStatus);
        }

});

你能给我一些提示我在请求中做错了什么吗?我知道我正在使用旧版本的 API,但我现在不会处理 OAuth。谢谢。

4

1 回答 1

1

一般不可能发送跨域ajax请求。这是一般规则。

JsonP是解决此限制的经典方法,据我所知,Xml 没有等效的方法。根据您的浏览器兼容性限制,您可以使用XHR2来实现这一点。

否则,唯一的解决方案是设置服务器代理。

Client --Ajax--> Your server --HttpRequest--> Twitter
于 2013-01-03T16:54:11.007 回答