2012-04-13 5 views
0

PhoneGapはtwitterからjsonをプリントアウトします。しかし、私は私のajax.openのために他のURLを使用すると、単に空白の画面が表示されます。乱雑なコードレイアウトのための 謝罪私はWebサーバーを作成し、私はlocalhostからのこれらの要求をコード化し、以下のコードを使用して、マイナスのスクリプトタグ内phonegap.js始め、それからHTMLを呼び出すためにうまく働いたEclipseを使用なぜXMLHttpRequestはTwitterのjsonでのみ動作しますか?

<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> 

"Phonegap.js"を削除しました。私のローカルマシンではphonegapを使用していないので、XMLHttpRequestのW3schoolのドキュメントから取得した "Test.js"と置き換えました。

エミュレータに/Test2.htmlを呼び出そうとすると、自分のサーバから空のscreen.Alsoが表示されます。私はtwitter jsonに電話することができません。これはドメイン間保護のためです私はphonegapで動作していないので、私は戻ってきます。

私のエミュレータでこのコードを使用してTest2と他のURLを表示できない理由を誰にでも教えてもらえますか? 誰もが利用可能な他のオンラインjsonsを知っている、私は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); 
} 
} 
+0

空白になっている「その他のURL」は何ですか?使用しているURLについては、ブラウザにそのURLを入力して、それが何を返すかを確認するだけです。それが空白になると、空白がAJAX呼び出しに戻ります。 –

+0

http://www.google.com/calendar/feeds/[email protected]/public/full?alt=jsonは、私が接続しようとしていたもう1つのjsonでした。ブラウザに入れてみるとjsonが見えますが、エミュレータの画面には出力されません。 – user1016950

答えて

2

他のJSONストリームにアクセスするには、「APIキー」が必要な場合があります。 Twitterはそのような鍵を必要としません。

+0

特定のjsonにキーが必要かどうかを確認するには、次のようにします。http://www.google.com/calendar/feeds/[email protected]/public/full?alt=json – user1016950

+1

それはアクセスの問題でした。いくつかの他のWebページでテストしましたが、アクセスが必要なものやそれ以外のものがありました。助けてくれてありがとう! – user1016950

+1

これは、Twitterが、JASONの "Hello World"の例とtutorilsを作成するプラットフォームをプログラミングするための "事実上の"サンプルAPIになりがちな理由です。APIキーは必要ありません。 – tomByrer

関連する問題