使用JQueryAJAX时访问PHP全局变量


Accessing PHP Global Variables when using JQuery AJAX

我正试图使用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调用的文件。您可以看到发送的确切标头和响应。