2014-06-23 117 views
6

我使用Ajax將我的表單數據和文件傳遞給PHP文件進行處理。jquery ajax返回404找不到

的Javascript

$("form#applyform").submit(function(){ 

var data = new FormData(); 
jQuery.each($('#file')[0].files, function(i, file) { 
    data.append('file-'+i, file); 
}); 

$.ajax({ 
    url: 'ValidateApplication.php', 
    data: data, 
    cache: false, 
    contentType: false, 
    processData: false, 
    type: 'POST', 
    success: function(data){ 
     alert(data); 
    } 
}); 

} 

ValidateApplication.php肯定存在。如果我在Web瀏覽器中輸入地址,我可以查看它,但是當我提交表單時,Chrome控制檯返回404。

PHP與運行JavaScript的HTML頁面位於相同的文件夾中,所以我很困惑至於爲什麼我總是收到一個404

UPDATE

更改POST到GET擺脫了404錯誤,而是返回一個500內部服務器錯誤

更新2

改變的作用形式爲=「Vali dateApplication.php「並正常提交(無AJAX)導致正確的文件沒有任何錯誤。

+0

文件夾結構請 – mithunsatheesh

+6

您的大小寫正確嗎?某些操作系統/ Web服務器以不同方式處理大小寫。 (即「ValidateApplication.php」與「validateapplication.php」不同,也不是「Validateapplication.php」) – esqew

+0

Web瀏覽器中的完整URL有效嗎?你有沒有試過設置完整的URL,而不是像你發佈的那樣只是'ValidateApplication.php'? – JakeGould

回答

2

這似乎是FormData對象的問題。一旦我改變我的方法來使用.serialize()來代替,頁面就可以正常工作。

$("form#applyform").submit(function(){ 

    var data = $("form#applyform").serialize(); 
    jQuery.each($('#file')[0].files, function(i, file) { 
     data.append('file-'+i, file); 
    }); 

    $.ajax({ 
     url: 'ValidateApplication.php', 
     data: data, 
     cache: false, 
     contentType: false, 
     processData: false, 
     type: 'POST', 
     success: function(data){ 
      alert(data); 
     } 
    }); 
} 
+0

你確定自己寫的正確嗎?應用'serialize'的結果不是有'append'方法! – Alexander

0

嘗試文件名之前添加/: 網址:「/ValidateApplication.php」,

嘗試從POST更改請求類型爲GET,看看它是否工作。

嘗試註釋掉的代碼部分:

/*cache: false, 
contentType: false, 
processData: false,*/ 

嘗試使用其他瀏覽器。

+0

/之前的文件名導致它使用根目錄不起作用。 (轉到http://localhost/ValidateApplication.php而不是http://localhost/Scope%20Website/ValidateApplication.php,它是文件所在的位置)。 –

+0

將其更改爲GET可行,但會導致錯誤500內部服務器錯誤 –

+0

將這些行註釋會導致非法調用錯誤 –

2

我有同樣的問題和後2小時找什麼導致404 Not Found錯誤,我發現我最近與header()從PHP玩,忘了刪除下面的代碼行:

header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); 

刪除它後,我的Ajax函數又變得正常了。

+1

我花了4個小時才找到你的帖子。謝謝! –