我想使用AJAX調用來刪除文件。它應該很簡單,但出於某種原因,當使用AJAX訪問$_SERVER['DOCUMENT_ROOT']
時出現錯誤我設置了一個HTML表單並且沒有問題。讓我顯示代碼使用JQuery AJAX時訪問PHP全局變量
這是應該刪除圖像的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 語法錯誤:意外的標記
$.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表單提交到json_delete_photo.php沒有AJAX的作品,如果我刪除使用$_SERVER['DOCUMENT_ROOT']
從我的PHP,AJAX不返回錯誤(但我的圖像不會刪除!!)
我一直在抓我的頭在這一個,我不知道如何發送根到頁面。
感謝您的任何幫助。
什麼是* exact *錯誤信息?如上所示的摘錄沒有這樣的語法錯誤。 - 其次,僅僅因爲它通過AJAX進入並不意味着你應該接受未經驗證和未經授權的刪除命令。文件名可能包含冗長的路徑。 – mario 2012-02-01 23:43:37
@mario +1。另外,我不能肯定地說,除非$ _POST ['photo']'具有前導'/',那麼它需要是'$ _SERVER ['DOCUMENT_ROOT']。 '/'。 $ photo_name;'至於令牌錯誤,發佈有問題的行號和行的內容。確保你的'''(撇號)沒有使用「花哨」'''(左/右單引號)。 – drew010 2012-02-01 23:49:08
您在jQuery選擇器'$('#image_name')'中使用了單引號。我不知道你是否可以這樣做,我曾經使用/看到過的所有工作代碼...對選擇器使用雙引號。 – 2012-02-02 00:39:11