2015-07-19 77 views
0

我有一個網絡服務器,現在我想上傳文件功能。我試圖在Ajax上使用Node.js,但每當我按下按鈕時,它都會告訴我'禁止訪問,您無權訪問此服務器上的/ api/photo /。'。我試圖使用一切,但停在本教程https://codeforgeek.com/2014/11/ajax-file-upload-node-js/ 我的代碼幾乎相同,所以我不必在這裏解釋它。這是我的網站http://ibarakaiev.shpp.me/node_upload/ 你有什麼想法可能是什麼?附:權限設置爲0777Node.js與Ajax在Web服務器上上傳文件

+0

它看起來像您的節點應用程序的ROOT_URL是http://ibarakaiev.shpp.me/node_upload/,但形式的動作url是http:// ibarakaiev .shpp.me/API /照片。嘗試將其更改爲http://ibarakaiev.shpp.me/node_upload/api/photo。 –

回答

0

的問題是在上傳表單動作地址/API /攝

<form id="uploadForm" enctype="multipart/form-data" action="/api/photo" method="POST"> 
      <input type="file" name="userPhoto"> 
      <input type="submit" value="Upload Image" name="submit"> 
     </form> 

但是,當您訪問http://ibarakaiev.shpp.me/api/photo/你可以看到禁止錯誤。那是因爲NGINX webserver負責這個頁面。您可以通過查找服務器響應中的標題(F12 - > Chrome中的網絡)來查看它。

你真正需要的是將文件數據發送到NODE.JS快速應用程序。正如我在教程中看到,該服務器在端口3000上運行(從代碼):

app.listen(3000,function(){ 
    console.log("Working on port 3000"); 
}); 

所以,你需要採取行動網址更改爲http://ibarakaiev.shpp.me:3000/api/photo

<form id="uploadForm" enctype="multipart/form-data" action="http://ibarakaiev.shpp.me:3000/api/photo" method="POST"> 
      <input type="file" name="userPhoto"> 
      <input type="submit" value="Upload Image" name="submit"> 
     </form> 

甚至試圖改變域名與您的servers'ip地址,然後使用類似http://server_ip:3000/api/photo

+0

謝謝老兄,但我已經解決了我的問題:) –