2017-06-19 252 views
0

我正在嘗試將一個本地文件夾中的所有圖片加載到我的html頁面上的Ajax。代碼參考this question。文件首先在Eclipse的(Tomcat 8.5)服務器上運行,然後在Google Chrome中打開網址。然後阿賈克斯未按控制檯:Ajax網址GET 404錯誤

GET /Users/jiaqni/.../WebContent/upload 404()

任何想法,我做錯了什麼?相對路徑「dir ='upload /';」既不可行。多謝你們!加入

<script> 
    $(document).ready(function(){ 
     console.log("Image appending..."); 
     var dir = "/Users/jiaqni/.../WebContent/upload/"; 
     var regexp = new RegExp("\.png|\.jpg|\.jpeg"); 
     $.ajax({ 
      url: dir, 
      success: function (data) { 
       //List all .png .jpg .jpeg file names in the page 
       console.log("Success!"); 
       $(data).find("a").filter(function(){return regexp.test($(this).text());}).each(function(){ 
        var filename = this.href.replace(window.location, ""); 
        ... 
       }); 
      } 
     }); 
    }); 
</script> 

的.htaccess到文件夾/User/.../upload/,以確保它的瀏覽。如果沒有Ajax,<img src="upload/xxx.jpeg"/>會在該文件夾中顯示圖像。

+1

URL路徑可瀏覽?那就是:你可以在瀏覽器中打開它並查看其中的所有文件嗎? – puelo

+0

似乎不像你指向正確的'dir'? –

+0

@puelo是的,手動添加.htaccess使其可瀏覽。我可以使用「file:///Users/jiaqni/.../upload」查看文件,但不能在Ajax中查看。我應該將「file://」添加到當前路徑中嗎?它會引發另一個錯誤「交叉源請求僅支持協議模式:http,數據,chrome,chrome擴展名,https。」 –

回答

0

我在猜測這裏提到的URL是指您的計算機上的本地資源。

不幸的是,這是不可能的 - 通常是瀏覽器(例如谷歌瀏覽器)阻止您這樣做(由於隱私&允許它可能出現的安全問題)。

你應該把你的文件放到你的web服務器(例如Apache,ngnix等)中,並相應地調整AJAX請求的URL。

祝你好運。

+0

這不應阻止我在Eclipse IDE中訪問本地資源?此外,html能夠以顯式代碼顯示本地圖像(甚至在瀏覽器中)。所以我認爲只有Ajax被封鎖了? –

+0

是的,只有AJAX被阻止。 你可以在這裏閱讀更多信息:https://stackoverflow.com/questions/17947971/ajax-in-jquery-does-not-work-from-local-file – Catalyst

+0

謝謝!由於部署問題,我無法使用XAMPP。我已經嘗試將圖像放在** apache-tomcat-8.5.15/temp/**和** apache-tomcat-8.5.15/wtpwebapps/ProjectName/**中,但都不能解決問題。您能否告訴服務器文件夾中的哪些地方適合Chrome瀏覽器?此外,爲什麼** --disable-web-security **不起作用?我知道這不是最好的解決方案...... –