0

$.post()jqueryリクエストによってphpコードから取得したjsonデータがいくつかあります。形式はjsonです。しかし、コールバック関数が呼び出されたときにデータがブラウザで処理されません

$.post(url_send, data_to_send, function(callback_data){
      var info = callback_data.info;
      console.log(callback_data.info);
      ...
});

callback_data = {"success":[{"id":some_number}],"info":"some_string"} 

デバッグするために、次のことに気付きました。このコードをconsole.log(callback_data);入力すると、コンソールに正しいjsonデータが表示されますが、許可するconsole.log(callback_data.info)と、コンソールにが表示されます'undefined'。誰かがそれを説明できますか?

編集:私のphpには$ reply = array('success' => $ ids、'info' => $ info);があります。echo json_encode($ reply);

4

3 に答える 3

2

phpページから返されるjsonには、おそらく「info」という名前のフィールドが含まれていません。ですから、試してみるとcallback_data.info、情報がないので未定義です。

于 2013-02-01T16:23:21.407 に答える
2

callback_dataは文字列形式になります。オブジェクトとして使用するには、evalを使用してjsonに変換する必要があります。evalを実行すると、callback_data.infoは次のようになります。

$.post(url_send, data_to_send, function(callback_data){
      callback_data = eval('(' + callback_data + ')');
      console.log(callback_data.info);
      ...
});
于 2013-02-01T16:25:57.033 に答える
0

フィールドは情報であり、callback_data.informationである必要があります。

于 2013-02-01T16:25:13.637 に答える