Jquery Ajax响应
当我使用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);
我试图提醒效应初探alert(data.msg)
但它说不确定。有什么想法吗?
您是否尝试过设置您的标题以返回JSON? 这样的jQuery知道你返回JSON
header('Content-type: application/json');
老兄我不认为它有需要 –
除此之外,我没有测试过其他的东西,但我只看到有一个在你的Ajax选项拼错:
dateType: 'json'
更改它到:
dataType: 'json'
这应该做到这一点^ _ ^刚刚去那里之前,我做了xD – DarkMantis
Keener的眼睛比我今天早上! :) –
哇,我没有看到。谢谢!虽然还有另一个问题。现在说'data'为空。 – Turtel
首先更改Kavousi提到的datatype
的拼写。然后在你的回复中解析你的传入数据这样的一些事情
var response = obj = JSON.parse(data);
alert(response.msg);
看看有哪些开发人员工具可供您查看正在返回的请求。如果你到达'alert',那么请求就会恢复正常。你只需要检查'数据'的样子(在Chrome中做一个console.log(data)来查看它) –
你可以尝试提醒(数据)吗? :) –
您需要使用['.parseJSON()'](http://api.jquery.com/jQuery.parseJSON/)成功解析您的JSON,或尝试使用['.getJSOn()'](http ://api.jquery.com/jQuery.getJSON/)而不是'.ajax()' – JMax