0

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,我尝试了 google 和 yahoo 的,但它们似乎也不起作用。

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);
}
}
4

1 回答 1

2

您可能需要一个“API 密钥”来访问其他 JSON 流。Twitter 不需要这样的密钥。

于 2012-04-13T14:33:14.537 回答