dshnx48866 2012-06-04 14:39
浏览 117
已采纳

使用ajax不返回JSON对象

I am beginning to play around with JSON, and I keep running into trouble that neither Google nor SO have helped me with. I have a very simple PHP script:

<?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 ) ; 
}


?>

I have the following ajax call:

$('.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; 

});

If the php gets called without JS (and the form doesn't contain a proper email address), then I get the following object (which is what I want!): {"status":0,"msg":"Failed to send"}

However, if submitting with JS (ajax), the JSON object never gets received. Any ideas?

Thanks!

展开全部

  • 写回答

1条回答 默认 最新

  • dougao7801 2012-06-04 14:41
    关注
    dataType: "jason",
    

    Read:

    dataType: "json",
    

    ;-)

    Also, you have some semi colons where there should be commas:

    var name = $('#name').val(),    // These two lines should be comma-terminated to
        email = $('#email').val(),  // make this a correct var declaration
        phone = $('#phone').val();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?