2011-10-21 7 views
3

Jqueryを使用してajaxリクエストを行うと、PHPからの応答を得る正しい方法は何ですか?Jquery Ajaxレスポンス

私はjQueryのために、このコードがあります。

$('#quote-form').submit(function(e) { 
    e.preventDefault(); 
    $.ajax({ 
     type: 'POST', 
     data: $(this).serialize(), 
     dateType: 'json', 
     url: 'mail.php', 
     success: function(data) { 
      alert(data.msg); 
     } 
    }); 

    return false; 
}); 

そしてPHPコードmail.php

// Some mail functions here 

$mailSent = @mail($to, $subject, $message, $headers); 
$return['msg'] = $mailSent ? 'mail sent' : 'mail failure'; 
echo json_encode($return); 

を私はREPONSE alert(data.msg)に警告しようとしたが、それは未定義と言っています。何かご意見は?

+0

返されたリクエストを見るには、どのような開発ツールが利用できるかを見てください。あなたが 'alert'に到達すれば、要求はうまく戻ってきます。 (データを表示するためにChromeでconsole.log(data)を実行してください) –

+0

(データ)を警告することができますか? :) –

+0

['.parseJSON()'](http://api.jquery.com/jQuery.parseJSON/)で成功した後にJSONを解析するか、['.getJSOn()'](http ://api.jquery.com/jQuery.getJSON/) '.ajax()'の代わりに – JMax

答えて

0

JSONを返すようにヘッダーを設定しましたか? jQueryのは、あなたが離れて私がテストしていない他のものからJSON

header('Content-type: application/json'); 
+0

おやすみなさい私はそれが必要であるとは思わない –

6

を返しているが、私はちょうどあなたのAJAXの選択肢で間違えがあることを見て知っているこの方法:

dateType: 'json' 

変更、それは〜:

dataType: 'json' 
+0

それはそれを行う必要があります^ _ ^私はxDをした前にそこに着いた – DarkMantis

+0

私は今朝持っているよりもKeenerの目! :) –

+0

うわー私はそれを見ていない。ありがとう!別の問題があります。これで、 'data'がnullであることがわかりました。 – Turtel

0

最初に、Kavousiが述べたようにdatatypeのスペルを変更します。次に、受信したデータをあなたの応答で構文解析します。

var response = obj = JSON.parse(data); 
    alert(response.msg); 
関連する問題