当我点击删除按钮confirmDelete函数调用时,它会将参数发布为json。它从服务器页面返回并输入成功方法,但没有任何值。。不为null,仅为空字符串:"我无法弄清楚我发布的问题是什么,也无法在同一页面中获取表单中的数据,这很好,但事实并非如此。。我缺少什么?
confirmDelete = function()
{
var data = {
"action": "DeleteLocalObject",
"objectName":intenttoDeleteobjectTitle
};
$.ajax({
url:"../../Controller/ObjectController.php5",
type:"POST",
//contentType: "application/json",
data: data,
success: function(data) {
debugger
if(data.Passed)
{
setTimeout(function () {
location.reload(true);
}, 1500);
}
else
{
}
},
error:function(a, b, c){
}
});
}
这里的响应页面:(我还没有实现删除,只想检查请求是否正常)
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
if (isset($_POST["action"]) && !empty($_POST["action"])) { //Checks if action value exists
$action = $_POST["action"];
switch($action)
{ //Switch case for value of action
case "CreateLocalObject":
$controllerObject->createNewLocalObject($_POST["objectname_new"],$_POST["objectcomment_new"],$_POST["type_new"],$_POST["ipaddress_new"]);
break;
case "DeleteLocalsObject":
$result =$_POST["objectName"];//this must get value
echo json_encode($result);//and this must print data to success method
break;
}
我以为它会返回与我发布的对象名称相同的名称。
您不是向服务器发送键值对,而是发送一个字符串:
data: JSON.stringify(data),
因此,您无法使用$_POST
全局访问它;变量将为空,因此结果为空。
您应该将数据作为键值对的对象发送:
data: data,
为了让jQuery自动解析返回的数据,您应该添加一个数据类型:
dataType: 'json',
data: data,