2012-02-14 12 views
-1

これは私のJSONデータを引き出していない理由について誰でも私を記入できますか?私は構文が正しいと思うが、ページはデータをプルしない。何かご意見は?JSONデータを取得していませんか?

<!DOCTYPE html> 
<html> 
    <head> 
     <title>PhoneGap Ajax Sample</title> 
     <script type="text/javascript" src="phonegap.js"></script> 
     <script type="text/javascript"> 
      function appReady(){ 
       var ajax = new XMLHttpRequest(); 
       ajax.open("GET","http://www.lcbcchurch.com/mobileJSON/homeslideshow",true); 
       ajax.send(); 

       ajax.onreadystatechange=function(){ 
        if(ajax.readyState==4 && (ajax.status==200||ajax.status==0)){ 
         eval('var data = ' + ajax.responseText + ';'); 
         var theResults = data.results; 
         var theHTML = ''; 
         for(var i=0;i<theResults.length;i++){ 
          theHTML += [ 
             '<div class="avatar"> <img src='+theResults[i].slideshow-image+' />'].join(''); 
         } 
         document.getElementById('main').innerHTML = theHTML; 
        } 
       } 
      } 
      document.addEventListener("deviceready", appReady, false); 

      </script> 

    </head> 
    <body> 
     <div id="main"> 

     </div> 
    </body> 
</html> 
+2

実行されますか?あなたは 'alert'デバッグを試みましたか? – AndiDog

+2

send()の前にonreadystatechange *を割り当てるべきではありませんか? [あるいはopen(before)] – kralyk

+1

私はあなたが動的にフェッチするデータに 'eval'を使用しないことをお勧めします。それはセキュリティ上の観点から絶対に恐ろしいことです!これは基本的には、JavaScriptの世界の手をconcatinating-SQL-queriesです。 – Kitsune

答えて

0

追加情報なしで伝えるのは難しい、しかし:

セットajax.onreadystatechangeます(.send呼び出す前に)あなたはどのように処理するか、インスタンスを言った前に、それ以外の応答は、理論的には、到着する可能性それはブラウザの実装に完全に依存します。

第2に、ホストしているのですか、それともファイルシステムからローカルで試していますか?多くのブラウザでは、Ajaxコールはファイルシステムからは機能しません(クロスサイトスクリプティングの脆弱性と見なされます)。テストするためにローカルのシンプルなWebサーバーをインストールするのが最善です。

最後には、その邪悪な;-)

使用

代わり
var result = JSON.parse(string); 

、evalを使用しないでください。

+0

もう少し詳しい情報があります。私はあなたがおそらくこのすべてで言うことができるように初心者です。私はチュートリアルを使用しており、基本的なツイッターのクエリ "http://search.twitter.com/search.json?q=bacon"でうまくいきます。しかし、私は私のURLを "http://www.lcbcchurch.com/mobileJSON/homeslideshow"プラグインし、配列の呼び出しを変更すると何も出力されません。私のjsonのページは正しくありませんか? JSON情報を取得するために、式エンジンプラグインを使用しています。 – nate8684

関連する問題