简单的jQuery + PHP无法正常工作

J.K*_*.Ko 1 javascript php ajax jquery

我的javascript中有以下代码:

$.ajax({
    url : 'update_data.php',
    type : 'POST',
    data : 'asdfasd', //d,
    success : function(response){
        console.log(response);
    },
    error: function(jqXHR, textStatus, errorThrown){
        console.log('jqXHR.responseText:  ' + jqXHR.responseText);
        console.log('jqXHR.responseXML :  ' + jqXHR.responseXML);
        console.log('textStatus:   ' +  textStatus);
        console.log('errorThrown:   ' + errorThrown);
    },
    dataType : 'text'
});
Run Code Online (Sandbox Code Playgroud)

这是我的'update_data.php':

<?php
    echo json_encode($_POST);
    if (isset($_POST['data'])){
        echo "here!";
    } else {
        echo "failed jquery";
    }
?>
Run Code Online (Sandbox Code Playgroud)

当我运行Ajax方法时,我在控制台中得到以下响应:

[]failed jquery
Run Code Online (Sandbox Code Playgroud)

意思是update_data.php没有收到任何POST请求.'[]'来自json_econd($ _ POST),'失败的jquery'来自if/else.

我究竟做错了什么?

Nis*_*eta 7

你需要传递如下数据

 data : {'data':'asdfasd'},
Run Code Online (Sandbox Code Playgroud)

如果想传递多个参数那么

data : {'data':'asdfasd','param1':'value','param2':'value'},
Run Code Online (Sandbox Code Playgroud)

或提交表格数据

data : $( "formselector" ).serialize(),
Run Code Online (Sandbox Code Playgroud)

ajax中的数据参数

键入:PlainObject或String或Array要发送到服务器的数据.如果不是字符串,它将转换为查询字符串.它附加到GET请求的URL.请参阅processData选项以防止此自动处理.对象必须是键/值对.如果value是一个数组,jQuery会根据传统设置的值使用相同的键序列化多个值(如下所述).

这里阅读更多关于jquery ajax参数的信息