“只有HTTP支持跨源请求。” 加载本地文件时出错

我试图用JSONLoader将3D模型加载到Three.js中,并且该3D模型与整个网站位于同一目录中。

我收到"Cross origin requests are only supported for HTTP." 错误,但我不知道是什么导致它,也不知道如何解决它。


我的水晶球说你正在使用file://C:/来加载模型,它保持为错误消息,因为它们不是http://

因此,您可以在本地PC中安装Web服务器或将模型上载到其他位置并使用jsonp并将URL更改为http://example.com/path/to/model


只是要明确 - 是的,错误是说你不能直接将浏览器指向file://some/path/some.html

以下是一些选项:

Python 2

如果你安装了Python ...

  • 使用命令cd /path/to/your/folder将目录切换到文件some.html或文件存在的cd /path/to/your/folder

  • 使用命令python -m SimpleHTTPServer启动Python Web服务器

  • 这将启动一个托管您的整个目录列表的Web服务器,通过以下URL访问该服务器: http://localhost:8000

  • 你可以使用自定义端口python -m SimpleHTTPServer 9000给你链接: http://localhost:9000
  • 这种方法内置于任何Python安装中。

    Python 3

    执行相同的步骤,但使用下面的命令来代替python3 -m http.server

    Node.js的

    或者,如果您需要更灵敏的设置并已使用nodejs ...

  • 安装http-server通过键入npm install -g http-server

  • 切换到您的some.html所在的工作目录

  • 通过发出http-server -c-1启动你的http服务器

  • 这将启动一个Node.js httpd,它将您目录中的文件作为可从http://localhost:8080访问的静态文件

    红宝石

    如果你的首选语言是Ruby ...... Ruby Gods说这也适用:

    ruby -run -e httpd . -p 8080
    

    PHP

    当然PHP也有它的解决方案。

    php -S localhost:8000
    

    在Chrome中,您可以使用此标志:

    --allow-file-access-from-files
    

    在这里阅读更多。

    链接地址: http://www.djcxy.com/p/55777.html

    上一篇: "Cross origin requests are only supported for HTTP." error when loading a local file

    下一篇: How to upload a file using jQuery.ajax and FormData