为什么XMLHttpRequest只适用于Twitter json

Why XMLHttpRequest only working for Twitter json?

本文关键字:Twitter json 适用于 XMLHttpRequest 为什么      更新时间:2023-09-26

PhoneGap将从下面的Twitter打印出json。但是,当我为我的ajax.open使用任何其他url时,它只会显示一个空白屏幕。为凌乱的代码布局道歉

 <pre>
</head>
<body>
 <script type="text/javascript" src="phonegap.js"></script>
<script type="text/javascript">
         function appReady(){
         }
         document.addEventListener("deviceready", appReady, false);
         var ajax = new XMLHttpRequest();   
         ajax.open("GET","http://search.twitter.com/search.json?q=bacon",true);
         ajax.send();
         ajax.onreadystatechange=function(){
         if(ajax.readyState==4 && (ajax.status==200))
         {
           document.getElementById('main').innerHTML = ajax.responseText;
         }
       }
       </script>
      Hello
 <div id="main">
 </pre>

使用 eclipse,我创建了一个 Web 服务器,并开始从我的本地主机对这些请求进行编码,并在脚本标签中使用以下代码,减去 phonegap.js,它适用于从/Test2.html" 调用 html。我删除了"phonegap.js",因为在我的本地机器上它没有使用phonegap,我确实用"Test.js"替换了它,它只包含以下代码,这是我从XMLHttpRequest上的W3school文档中获得的:

当我尝试让我的模拟器调用/Test2 时.html它显示一个空白屏幕。同样从我自己的服务器我无法调用 twitter json,我希望这由于跨域保护重新开启,因为我无法使用 phonegap。

谁能告诉我为什么我无法在我的模拟器上使用此代码查看 Test2 和其他 url。也有人知道任何其他可用的在线 json,我尝试了谷歌和雅虎的,但它们似乎也不起作用。

function handler() {
 if(this.readyState == this.DONE) {
if(this.status == 200 && this.responseXML != null && this.responseXML.getElementById('test').textContent) 
{
  // success!
  processData(this.responseXML.getElementById('test').textContent);
  return;
}
// something went wrong
processData(null);
}
}

您可能需要"API 密钥"才能访问其他 JSON 流。 Twitter不需要这样的密钥。