2012-03-07 16 views
2

私はデータベースから戻ってくるJSONオブジェクトを持っています。これは正しくフォーマットされています。私はAJAX呼び出しでその中のデータにアクセスしようとしています。ここに私のAJAXがあります。AJAX呼び出しからJSONデータを返す方法

$.ajax({ 
     url: '<?php echo site_url('find_representatives/find_rep_by_address/get_coordinates'); ?>', 
     dataType: 'json', 
     data: '', 
     success: function(data, status, xhr) { 
      alert(data); 
     }, 
     error: function(xhr, status, error) { 
      alert(status); 
     } 
}); 

すべてのデータを検索しているため、自分のデータに「」があります。私は 'ID'をそこに置いてみましたが(私のJSONオブジェクトにはIDがありますが、そのときに関数が機能しなくなりました。 'データ'を警告するとオブジェクトを取得しますが、 'data.id'私が最初にAJAXを呼び出したのですが、私はチェックしました。

+0

application-jsonをContent-Typeとして返していますか? – Daff

+0

ブラウザのデバッガを開き、[NET]タブを見て、サーバからの応答を嗅ぎます。あなたが得るものを見てください。 –

答えて

1

try data[0]あなたがアラートで何を得るのかを見てください...これがあなたに役立つと思います

+0

then try data [0] .id – Har

+0

上記のコメントを参照してください。 – sehummel

+0

これは彼がアレイを取得していることを前提にしていますが、そうではありません。たとえdata [0]がオブジェクトであれば、警告は何ですか? –

0

getJSONをチェックしてください。

$.getJSON(<?php echo site_url('find_representatives/find_rep_by_address/get_coordinates'); ?>, function(data) { 
    console.log(data); 
}); 
+0

私はそれを試み、同様の問題を抱えていました。 JSONデータは配列の配列だったからだと思います。 – sehummel

+0

なぜですか?データ型はjsonです。これは機能的に同等です。 –

+0

Console.logし、データを検査します。 JSONP – switz

1

適切にこの質問に答えるのに十分な情報がありません。

「アラート」を使用してデバッグしようとすると、問題が発生します。

Firebugまたはインスペクタ(Chrome、Safari)を使用していると仮定して、 'alert(data)'の代わりに 'console.log(data)'を試してください。

データは、一般的にオブジェクトであるいくつかの種類のものです。あなたが最初に文字列に変換しない限り、警告することはあなたにはあまり効果がありません。

また、ネットワークパネルを使用して、どのようなデータが配線経由で送られてくるのかを知ることができます。また、FiddlerやHTTPScoopのようなものを使って、サーバから戻ってくるものを把握することもできます。

6
data: '{}', 

これは、サーバーに空のデータ・オブジェクトを送信し、(すべてでdataは含まない)空のデータを送信することは、問題が発生するいくつかの問題を回避します。私が見てきたもうひとつ

が設定されていません:に「デバッグ」データ

contentType: "application/json", 

簡単な方法としては、視覚的にjson2.jsを含めると(成功関数の中で)行うことです。

alert(JSON.stringify(data)); 

data: '', 

富栄:

+0

'$ http.post(" Status.aspx/MyData "、{})'が私のために働いていれば 'data [0]'を使わなければならないかもしれません。 – OmegaMan

0

ここdataキーを使用すると、(もしあれば)サーバーに送信するものですコールバックの内側data引数はあなたが戻ってサーバから受信するものであるT:

success: function(data, status, xhr) { 
    alert(data); 
}, 
error: function(xhr, status, error) { 
    alert(status); 
} 

あなたがdataType: 'json'を使用すると、あなたが戻ってサーバーからJSONを期待しているというのjQueryを語っています。 PHPから有効なJSONを出力していますか(例:json_encode)?もしそうなら、あなたのコードはうまくいくはずです。

関連する問題