我想使用AJAX和HTML5處理從客戶端計算機上的文件上傳到服務器上的文件夾。代碼從未執行,沒有得到任何錯誤
現在下面的alert
消息除了success
函數永遠不會執行,我不知道爲什麼。我沒有收到任何JS錯誤。 php腳本和保存文件的文件夾都被授予完全的讀/寫權限。
我很難在沒有看到任何錯誤的情況下使其工作。
我很感謝任何幫助確定這個問題的原因,並獲得一些錯誤或至少警報消息執行。
非常感謝提前!
JQuery的
$.ajax({
url: 'upload.php', //server script to process data
type: 'POST',
xhr: function() { // custom xhr
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){ // check if upload property exists
myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // for handling the progress of the upload
}
return myXhr;
},
//Ajax events
success: function(data){
alert("OK");
$('body').html(data);
},
// Form data
data: formData,
//Options to tell JQuery not to process data or worry about content-type
cache: false,
contentType: false,
processData: false
});
HTML
<form enctype="multipart/form-data">
<input name="file" type="file" />
<input type="button" value="Upload" />
</form>
<progress></progress>
upload.php的
<?php
if ($_FILES["file"]["name"] != NULL) {
if (file_exists("uploads/" . $_FILES["file"]["name"]))
echo $_FILES["file"]["name"] . " already exists. ";
else
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
}
?>
稍微不相關,嘗試使用關鍵字「調試器;」在Chrome瀏覽器旁邊的JS文件中。當它擊中關鍵字並讓你看到發生了什麼時,它會停止執行。否則在診斷XHR時,complete:function(){}鉤子可能是另一個有用的點,因爲總是調用complete。 – David 2013-03-13 00:39:50
您沒有錯誤處理程序。按照文檔http://api.jquery.com/jQuery.ajax/中的描述創建一個'error:function(){}'錯誤回調並且始終在打開瀏覽器控制檯的情況下開發JavaScript。觀看XRH並在瀏覽器開發工具的網絡部分檢查其響應。 – 2013-03-13 00:39:56
您是否嘗試過使用開發人員工具進行調試? – j08691 2013-03-13 00:40:56