搜尋

首頁  >  問答  >  主體

重寫後的標題為:載入本機檔案時遇到「跨網域請求僅支援HTTP」錯誤提示

<p>我正在嘗試使用<code>JSONLoader</code>將儲存在我的電腦上的3D模型載入到Three.js中,而這個3D模型與整個網站位於同一個目錄中。 </p> <p>我遇到了<code>"跨域請求僅支援HTTP協定"</code>的錯誤,但我不知道是什麼原因導致的,也不知道如何修復它。 </p>
P粉680487967P粉680487967519 天前603

全部回覆(2)我來回復

  • P粉415632319

    P粉4156323192023-08-22 10:36:26

    明確一點 - 是的,錯誤是說您不能直接在瀏覽器中指向file://some/path/some.html

    以下是一些快速啟動本機網頁伺服器以讓您的瀏覽器呈現本機檔案的選項

    Python 2

    如果您已經安裝了Python...

    1. 使用指令cd /path/to/your/folder進入包含您的檔案some.html或檔案的資料夾

    2. 使用指令python -m SimpleHTTPServer啟動Python Web伺服器

    這將在http://localhost:8000上啟動一個Web伺服器來託管您的整個目錄清單

    1. 您可以使用自訂連接埠python -m SimpleHTTPServer 9000,連結為:http://localhost:9000

    這種方法已內建在任何Python安裝中。

    Python 3

    執行相同的步驟,但使用以下命令:python3 -m http.server

    #VSCode

    如果您使用的是Visual Studio Code,您可以安裝Live Server擴展,該擴展提供了一個本機Web伺服器環境。

    Node.js

    或者,如果您需要一個更靈敏的設定並且已經使用nodejs...

    1. 透過輸入npm install -g http-server#安裝http-server

    2. 切換到包含some.html的工作目錄

    3. 透過發出http-server -c-1啟動您的http伺服器

    這將啟動一個Node.js httpd,將您目錄中的檔案作為靜態檔案提供,可以從http://localhost:8080存取

    Ruby

    如果您的首選語言是Ruby ... Ruby之神說這也可以:

    ruby -run -e httpd . -p 8080

    PHP

    當然,PHP也有解決方案。

    php -S localhost:8000

    回覆
    0
  • P粉436688931

    P粉4366889312023-08-22 10:26:48

    我的水晶球告訴我,你正在使用file://C:/載入模型,這符合錯誤訊息,因為它們不是http:/ /

    所以你可以在本機上安裝一個Web伺服器,或是將模型上傳到其他地方,並使用jsonp並將URL改為http://example.com/path/ to/model

    RFC-6454中定義了起源

    ...它们具有相同的
       方案、主机和端口。(有关详细信息,请参见第4节。)

    所以即使你的檔案來自相同的主機(localhost),但只要方案不同(http / file),它們被視為不同的起源。

    回覆
    0
  • 取消回覆