Jquery Ajax响应

时间:2011-10-21 08:02:52

标签: php jquery

当我使用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),但它说未定义。有什么想法吗?

3 个答案:

答案 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);