我正在用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。感谢。
答案 0 :(得分:1)
通常无法发送跨域ajax请求。这是一般规则。
JsonP 是解决此限制的经典方法,根据我的知识,没有Xml的等价物。根据您的浏览器兼容性限制,您可以使用XHR2来实现此目的。
否则,唯一的解决方案是设置服务器代理。
Client --Ajax--> Your server --HttpRequest--> Twitter