Php ajax不会返回JSON对象

Php ajax不会返回JSON对象,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我开始玩弄JSON,我不断遇到谷歌和SO都没有帮到我的麻烦。我有一个非常简单的PHP脚本: <?php $email = $_REQUEST['email']; if ( strpos($email,'@') !== false ) { $data = array('status' => 1 , 'msg' => 'Sent') ; echo json_encode( $data ) ; } else { $data = array('statu

我开始玩弄JSON,我不断遇到谷歌和SO都没有帮到我的麻烦。我有一个非常简单的PHP脚本:

<?php

$email = $_REQUEST['email'];

if ( strpos($email,'@') !== false ) {
    $data = array('status' => 1 , 'msg' => 'Sent') ;
    echo json_encode( $data ) ;
} 

else {
    $data = array('status' => 0 , 'msg' => 'Failed to send') ;
    echo json_encode( $data ) ; 
}


?>

我有以下ajax调用:

$('.submit').click(function() {
    $('div.load').html('<img src="images/load.gif" alt="Loading..." id="loading" />'); //EDIT

    //creation of variables to send
    var name = $('#name').val();
        email = $('#email').val();
        phone = $('#phone').val();

    $.ajax({
        type: "POST",
        dataType: "jason",

        data: {
            name: name,
            email: email,
            phone: phone
        },

        url: "test.php",

        success: function( data ) {

            $('.contact').append( data )

        }
    });

    return false; 

});
$('.submit')。单击(函数(){
$('div.load').html(“”);//编辑
//创建要发送的变量
var name=$('#name').val();
email=$('#email').val();
phone=$('#phone').val();
$.ajax({
类型:“POST”,
数据类型:“jason”,
数据:{
姓名:姓名,,
电邮:电邮,,
电话:电话
},
url:“test.php”,
成功:功能(数据){
$('.contact').append(数据)
}
});
返回false;
});
如果在没有JS的情况下调用php(并且表单没有包含正确的电子邮件地址),那么我会得到以下对象(这就是我想要的!):{“status”:0,“msg”:“发送失败”}

但是,如果使用JS(ajax)提交,则永远不会收到JSON对象。有什么想法吗

谢谢

dataType: "jason",
阅读:

;-)

此外,您还有一些分号,其中应该有逗号:

var name = $('#name').val(),    // These two lines should be comma-terminated to
    email = $('#email').val(),  // make this a correct var declaration
    phone = $('#phone').val();
阅读:

;-)

此外,您还有一些分号,其中应该有逗号:

var name = $('#name').val(),    // These two lines should be comma-terminated to
    email = $('#email').val(),  // make this a correct var declaration
    phone = $('#phone').val();

请注意,您在这里输入的ajax数据类型参数(应该是json而不是jason)可能不是问题,但是您在
数据类型中没有输入错误吗?我不知道任何
jason
。PHP头是否设置为发送JSON数据?另外,您确定要将JSON对象附加到
$(“.contact”)
,您不想先对该对象执行一些操作吗?@dotty:我实际上不想附加该对象。但是在我实际使用该对象之前,我想确保我正确地接收到它注意,您错误地键入了ajax数据类型参数(应该是json而不是jason),这可能不是一个问题,但是您在
数据类型中没有输入错误吗?我不知道任何
jason
。PHP头是否设置为发送JSON数据?另外,您确定要将JSON对象附加到
$(“.contact”)
,您不想先对该对象执行一些操作吗?@dotty:我实际上不想附加该对象。但在我实际使用这个物体之前,我想确保我正确地接受了itHaha,很好的捕捉。这是你看到的唯一一个bug吗?因为修复了它,我仍然没有返回json对象:(@Amit当你
console.log(data);
success
函数中看到什么?
如果我是console.log(data)的话,试着添加一个
error
handler,我似乎得到了正确的对象。我想知道它为什么不想附加它?您希望它如何显示?您不能只将非DOM对象附加到DOM,它需要某种形式的字符串表示…例如,您可以
$('.contact')。附加(“状态:+data.Status+”;消息:+data.msg+)
Haha,捕捉得很好。这是你看到的唯一一个bug吗?因为修复了它,我仍然没有得到返回的json对象:(@Amit当你
console.log(数据);
success
函数中看到了什么?
此外,如果我是console.log(数据),试着添加一个
error
handler,我似乎得到了正确的对象。我想知道它为什么不想附加它?您希望它如何显示?您不能只将非DOM对象附加到DOM,它需要某种形式的字符串表示形式…例如,您可以
$('.contact')。附加(“状态:+data.Status+”;消息:+data.msg+);