Javascript 在AJAX中使用JSON格式的TwitterRESTAPI
我试图在TwitterRESTAPI(JSON格式)上实现AJAX。我做了下面的事情,但是什么也没发生 没有从服务器(Twitter)获得任何响应。我错过什么了吗Javascript 在AJAX中使用JSON格式的TwitterRESTAPI,javascript,Javascript,我试图在TwitterRESTAPI(JSON格式)上实现AJAX。我做了下面的事情,但是什么也没发生 没有从服务器(Twitter)获得任何响应。我错过什么了吗 function getRecentTweet(){ twitterUsername = document.getElementById("twitterUsername").value; if(window.XMLHttpRequest){ xhr = new XMLHtt
function getRecentTweet(){
twitterUsername = document.getElementById("twitterUsername").value;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}
else{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open("GET", "http://api.twitter.com/1/statuses/user_timeline/" + twitterUsername + ".json", true);
xhr.send(null);
xhr.onreadystatechange = function(){
if (xhr.readyState == 4) {
if(xhr.status == 200) {
var jsonObj = eval(responseJSON);
document.getElementById("twitterStream").innerHTML = jsonObj[0].text;
}
}
}
}
谢谢 是的,不允许跨域AJAX调用。您需要使用JSONP 向Twitter的API发出请求并附加
回调
参数。以下是一个示例url:
然后,来自Twitter的响应将包含可执行的JavaScript代码,其中函数名被指定为回调参数。因此,Twitter的反应如下:
myFunction(<JSON here>);
然后在页面上定义一个全局函数myFunction
,每当Twitter返回响应时,该函数总是被调用。这也可以预定义或动态生成
<script>
function myFunction(data) {
console.log(data);
}
</script>
函数myFunction(数据){
控制台日志(数据);
}
是的,不允许跨域AJAX调用。您需要使用JSONP
向Twitter的API发出请求并附加回调
参数。以下是一个示例url:
然后,来自Twitter的响应将包含可执行的JavaScript代码,其中函数名被指定为回调参数。因此,Twitter的反应如下:
myFunction(<JSON here>);
然后在页面上定义一个全局函数myFunction
,每当Twitter返回响应时,该函数总是被调用。这也可以预定义或动态生成
<script>
function myFunction(data) {
console.log(data);
}
</script>
函数myFunction(数据){
控制台日志(数据);
}
您可能还希望避免使用eval
,并使用JSON.parse()
方法
如果需要,可以获取响应,将其保存到本地json文件服务器端,然后使用AJAX从那里访问它
因此,您可以调用服务器端脚本并避免使用JSONP,它是由JavaScript代码执行的。Twitter似乎足够安全,但在LinkedIn、Yahoo、安全漏洞之后,你永远不会知道 您可能还希望避免使用
eval
并使用JSON.parse()
方法
如果需要,可以获取响应,将其保存到本地json文件服务器端,然后使用AJAX从那里访问它
因此,您可以调用服务器端脚本并避免使用JSONP,它是由JavaScript代码执行的。Twitter似乎足够安全,但在LinkedIn、Yahoo、安全漏洞之后,你永远不会知道 感谢Anurag的详细回答@希比塞罗-不客气。您可能还想看看现有的库,如jQuery、MooTools等等。。。已经解决了这个问题。或者,如果您想坚持使用纯Javascript,那么他们现有的解决方案可以帮助您更快地编写自己的脚本。感谢Anurag提供详细的答案@希比塞罗-不客气。您可能还想看看现有的库,如jQuery、MooTools等等。。。已经解决了这个问题。或者,如果您想坚持使用纯Javascript,那么他们现有的解决方案可以帮助您更快地编写自己的脚本。