AJAX请求给出'undefined index'PHP错误


AJAX request gives 'undefined index' error in PHP

我从这个AJAX调用得到undefined index(return data)。我哪里做错了?请纠正我。

$(document).ready(function() {
    $('#something').click(function() {
        edit(1, 'abc', 'xyz');
    });
    function edit(id, column, text) {
        $.ajax({  
            url: "edit.php",  
            method: "POST",  
            data: {
                id: id, 
                text: text, 
                column: column
            },  
            dataType: "text",  
            success: function(data) {  
                 console.log(data);  
            }  
        });      
    }
});

edit。

echo $_POST["id"];

我在控制台得到这个:

注意:未定义索引:id在C:'xampp'htdocs'datatable'edit.php on line 2

尝试使用

类型:"POST"

代替

方法:"POST"

   ...$.ajax({  
        url: "edit.php",  
        type: "POST",  
        data: {
            id: id, 
            text: text, 
            column: column
        }.....

它仍然类作为一个GET请求与这个吗?我认为这是因为你的jQuery版本。

从docs

type (default: 'GET')
Type: String
An alias for method. You should use type if you're using versions of jQuery prior to 1.9.0.

我认为问题是由于你写json数组键的方式。

尝试使用双引号从data json的键,像这样:

data:{"id":id, "text":text, "column":column}

试试这个,如果你想用PHP $_POST获取它,你可以添加内容类型json。我不确定这一点,但它在我的Angular

function edit(id, column, text) {
    $.ajax({  
        url: "edit.php",  
        method: "POST",  
        data: {
            id: id, 
            text: text, 
            column: column
        },  
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(data) {  
             console.log(data);  
        }  
    });      
}

请尝试使用此代码

/* start */ 
$(document).ready(function() {
$('#something').click(function() {
    var sendData = {
        url : '1',
        method : 'abc',
        column : 'xyz'
    };
    edit(sendData);
});
function edit(id, column, text) {
    $.ajax({
        type: "POST",
        url: "edit.php",
        data: sendData,
        success: function(response){
            console.log(data);
        }
    });   
} 
});
/* end */

我认为url: "edit.php"在您的服务器中没有访问。

通常,如果你在你的服务器本地;将url改为:

" http://localhost/yourproject/edit.php "。
  $.ajax({  
            url:"http://localhost/yourproject/edit.php",  
            method:"POST",  
            data:{id:id, text:text, column:column},  
            dataType:"text",  
            success:function(data){  
                 console.log(data);  
            }  
        });      

您使用的是哪个版本的JQuery ?试着改变

method: "POST",

type: "POST",