我从此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.php
echo $_POST["id"];
我在控制台中得到这个:
注意:未定义的索引: C:\ xampp \ htdocs \ datatable \ edit.php 中的行 2
答案 0 :(得分: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.
答案 1 :(得分:1)
您使用的是哪个版本的JQuery?尝试更改
method: "POST",
到
type: "POST",
答案 2 :(得分:0)
我认为问题在于你编写json数组键的方式。
尝试对数据json中的键使用双引号,如下所示:
data:{"id":id, "text":text, "column":column}
或为变量和键使用不同的名称。
答案 3 :(得分:0)
我认为网址是:" edit.php"无法在您的服务器中访问。
Normaly,如果你在当地的服务器上;所以你将你的网址更改为:
" 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);
}
});
答案 4 :(得分:0)
尝试这个,你可以添加内容类型json,如果你想用PHP $ _POST得到它。我不确定这个,但它适用于我的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);
}
});
}
答案 5 :(得分:0)
请尝试使用此代码
/* 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 */
答案 6 :(得分:0)
经过多次努力,我得到了答案。
even though after specifying method as POST ajax is sending it as a GET
(为什么?我不知道是否有人知道请发表您的答案)。
只有更改ID(edit.php)
<强> edit.php 强>
echo $ _GET ['id'];