我正试图使用AJAX调用删除一个文件。这应该很简单,但由于某种原因,我在使用AJAX 时尝试访问$_SERVER['DOCUMENT_ROOT']
时出错
我设置了一个HTML表单,没有问题。让我展示一下代码
这是应该删除图像的PHP。
$photo_name = $_POST['photo'];
$cat_id = $_POST['cat_id'];
$original_path = $_SERVER['DOCUMENT_ROOT'].$photo_name;
if(file_exists($original_path))unlink($original_path);
$data['success']=true;
运行下面的jquery返回语法错误:Unexpected Token
$.ajax({
type : 'POST',
url : "includes/json_delete_photo.php",
dataType : 'json',
data: {
'photo': $('#image_name').val(),
'cat_id': $("#category_id").val(),
},
success : function(data){
alert("done");
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert("problem: " + errorThrown);
}
});
然而,只需使用HTML表单在没有AJAX的情况下提交给json_delete_photo.php就可以了,如果我从php中删除了$_SERVER['DOCUMENT_ROOT']
的使用,AJAX不会返回错误(但我的图像不会删除!!)
我一直在为这个问题挠头,我不知道如何将根目录发送到页面。
谢谢你的帮助。
是否应该在此行的末尾使用尾随逗号?
'cat_id': $("#category_id").val(),
作为一种变通方法,尝试在ajax调用中直接输出$_SERVER
变量
data: {
'photo': $('#image_name').val(),
'cat_id': $("#category_id").val(),
'document_root': <?php echo $_SERVER['DOCUMENT_ROOT']; ?>
},
并引用php脚本中传递的$_POST['document_root']
变量。
要找出语法错误的确切原因,请使用"Chrome >> Tools >> Developer Tools >> Network Tab"
等调试工具,运行脚本并查看ajax调用的文件。您可以看到发送的确切标头和响应。