2012-04-25 15 views
0

私はgetJSONを呼び出して、このような結果をループして、すべてが素晴らしい仕事をしていたました:getJSON成功ハンドラにデータが返されないのはなぜですか?

$.getJSON(base_url + 'search/drill_down',{ 
     nextSelectName: nextSelectName, 
     thisSelectName: thisSelectName, 
     itemId: itemId 
    }, function(r) { 
     $.each(r.items, function(k, v) { 
      //do stuff 
     }); 
}); 

は今、特定の条件に私はいくつかのHTMLデータを返す必要があり、私はまだそう、私の元の状態のためのJSONを必要とします自分のHTMLをJSONとしてエンコードするだけだと思ったのですが、データは返されません!元のコードはまだうまく動作しますが、JSONとしてエンコードされたHTMLを返そうとしているときにだけ問題が発生します。

$.getJSON(base_url + 'search/drill_down',{ 
     nextSelectName: nextSelectName, 
     thisSelectName: thisSelectName, 
     itemId: itemId 
    }, function(r) { 

     alert('working!'); // Not hitting this! 

     if(r.tabs){ 
      $.each(r.tabs, function(k, v) { 
      var html = v[ 'html' ]; 
       return $('#content').html(html); // No need to continue, there is only one HTML string and no items. 
      }); 
     } 

     $.each(r.items, function(k, v) { 
      //do stuff 
     }); 
}); 

私は(CodeIgniterを使用して)サーバーにブレークポイントを設定しています。私はJSONとしてエンコードされたHTMLをチェックし、それが有効なJSONであることを確認しました。サーバーで生成されたJSONがgetJSON成功ハンドラに戻らないのはなぜですか?

+1

maybを使用して確認してください..あなたは、サーバーから取得している応答をチェックして、あなたが戻ってきている完全な応答が正しいデータ型を持っており、有効なJSONであることを確認してください..あなたがの開発ツールを使用してこれを行うことができますあなたがurサイトをテストするために使用しているブラウザ –

+0

@ParvSharmaありがとうございましたが、私が述べたように、私は応答を返さないでしょう。成功ハンドラのコードの最初のビットは 'alert( 'working!')'であり、私はそれを打つことさえしていません。私はまた、サーバー上にブレークポイントを置き、生成されたデータをチェックし、それが有効なJSONであることを確認したと述べました。 – ubiquibacon

答えて

1

唯一の説明はリクエストが氾濫しており、理由が多数ある可能性があります。 1人が間違った場所でリクエストしている可能性があります。

console.log(base_url + 'search/drill_down'); 
+0

ありがとう、 'console.log()'は、私がJSONの妥当性をチェックした後でJSONを台無しにしていたサーバーエラーを特定できました。 – ubiquibacon

関連する問題