当我使用Jquery执行ajax请求时,从PHP获取响应的正确方法是什么?
我有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);
我试图提醒响应alert(data.msg)
,但它说未定义。有什么想法吗?
答案 0 :(得分:6)
除了我没有测试的其他东西,但我刚看到你的ajax选项中有拼写错误:
dateType: 'json'
将其更改为:
dataType: 'json'
答案 1 :(得分:0)
您是否尝试过设置标头以返回JSON? 这样jQuery知道你正在返回JSON
header('Content-type: application/json');
答案 2 :(得分:0)
首先更改Kavousi提到的datatype
的拼写。然后在您的回复中解析您的传入数据,例如:
var response = obj = JSON.parse(data);
alert(response.msg);