jQuery AJAX Post alert()未被调用

时间:2017-01-14 11:47:23

标签: javascript php jquery ajax

以下代码无效。警报应显示但不显示。我的HTML表单按钮具有属性onclick="doPost()",其功能如下:

function doPost() {
    if ( allFieldsValid() ) {
        var data1 = $( '#data1' ).val();
        var data2 = $( '#data2' ).val();
        var data3 = $( '#data3' ).val();
        var data4 = $( '#data4' ).val();

        var data5 = localStorage.getItem( 'data5' );
        var data6 = localStorage.getItem( 'data6' );

        var post_data = { d1: data1, d2: data2, d3: data3, d4: data4, d5: data5, d6: data6 };

        //console.log( post_data ) always displays the data with no nulls.

        $( '#myForm' ).submit( function(e) ) {
            $.ajax({
                type: 'post',
                url: 'http://localhost/myphpfilelocation.php',
                data: post_data,
                cache: false,
                success: function( response ) {
                    alert( response );
                },
                error: function( response ) {
                    alert( response );
                }
            });
            e.preventDefault();
        }      
    } else {
        alert( 'Fields are not valid' );
    }
}

我的PHP代码使用echo来显示它获得的数据:

<?php
    $data1 = $_POST[ 'd1' ];
    $data2 = $_POST[ 'd2' ];
    $data3 = $_POST[ 'd3' ];
    $data4 = $_POST[ 'd4' ];
    $data5 = $_POST[ 'd5' ];
    $data6 = $_POST[ 'd6' ];

    echo( $data1. ' '.$data2. ' '.$data3. ' '.$data3. ' '.$data4. ' '.$data5. ' '.$data6 );
?>

我的脚本中的alert()甚至都没有出现。

我的所有HTML表单输入都有正确的ID(('#data1')等)。

1 个答案:

答案 0 :(得分:1)

您必须使用JSON.stringify()方法。

  

JSON.stringify函数将Javascript对象转换为JSON文本和   将它存储在一个字符串中。

此外,contentType是您要发送的数据类型,因此application/json

请试试这个:

$.ajax({
        type: 'post',
        url: 'http://localhost/myphpfilelocation.php',
        data: JSON.stringify(post_data),
        contentType:'application/json',
        cache: false,
        success: function( response ) {
            alert( response );
        },
        error: function( response ) {
            alert( response );
        }
});

php文件中,您必须使用json功能解码json_decode个对象。