2012-03-06 22 views
0

私のコードには脆弱性があり、少し混乱しています。しかし、私はにconsole.logに「未定義」取得していますjQuery ajaxでサーバ側からの応答を処理する

$.ajax({ 
     type: 'POST', 
     url: '/contact/index/add/', 
     data: $("#addContact").serialize(), 
     success: function(data, status, xhttp) { 
      var response = eval ("[" + data + "]"); 
      console.log(response.msg); 
      if (response.success){ 
       console.log(response.msg); 
      } else { 
       console.log(response.msg); 
      } 
     }, 
     dataType: "html" 
    }); 

私は何を探していますが(JSON形式でエンコードされた)アレイにアクセスできるようにする応答にある(response.msg)ライン

Iは、(応答)CONSOLE.LOG場合は、として(放火犯で)示しています

[オブジェクト{成功= TRUE、MSG = "テスト"}]

要求が返送されます続くトリング:

{ "成功":真、 "MSG": "テスト"} 私はevalのための[]内の応答を囲むために持っている理由です。

私が混乱しているのは、上記の配列のプロパティにどうやってアクセスするのですか。

Iは、(PHP/Zendのフレームワーク)を有する

サーバ側

エコーZend_Json_Encoder ::エンコード(配列( '成功' => trueを、 'MSG' => 'テスト'));出口;

私は

​​

は、私は、サーバー側またはJavaScript側を変更する必要があります行のように配列のキー/値にアクセスするために何が必要ですか?

+0

- アップデート - 私はデータ型をHTMLではなくjsonとして修正し、[]問題を修正しました。 –

+0

- 2回目の更新 - この問題を無視してください。それは問題全体であり、私がする必要があったのは正しいデータタイプを設定することでした。 –

答えて

1

右を指定する必要がありますdataType。あなた返されるデータ型としてJSONを指定する必要があります。

dataType: 'json' 
+0

ええ、質問を削除する方法があったと思うよ、私は自分のエラーを認識した。ありがとうございました。 –

0

通常のものと角括弧を切り替えるようにしてくださいすることはeval声明"(" +です...

1
dataType: "json" 

そしてevalのを使用していませんjsonを解析するjQuery.parseJSON

+0

お分かりいただきありがとうございました...まだ学習しています:) evalステートメントについて懸念していました。 –

関連する問題