跨域请求只支持HTTP与PreloadJS (CreateJS)

Cross Origin Request Only Supported With HTTP with PreloadJS (CreateJS)

本文关键字:PreloadJS CreateJS HTTP 请求 支持      更新时间:2023-09-26

我正在制作一个关于createJS的游戏,我在添加LoadQueue来加载图像时,我得到这个错误:

XMLHttpRequest cannot load file:///home/me/programming/assets/background.png. Cross origin requests are only supported for HTTP. createjs-2013.12.12.min.js:15

我已经搜索了这个问题,我现在知道这会发生,因为它应该在服务器上工作。然而,现在我只是在测试,所以我希望能够测试这一点,即使离线(我没有服务器)。

我已经看过针对这个问题提出的解决方案。我试过用

运行Google Chrome
--allow-file-access-from-files

--disable-web-security

是否有一种方法来运行PreloadJS而不实际把图像放在服务器上?如果没有,我认为这将使CreateJS套件甚至HTML5作为一个整体,与允许加载本地文件的东西相比,成为一个没有吸引力的制作游戏的工具。我希望我错了,那不是真的。

正如Lanny在评论中提出的那样,从长远来看,"咬咬牙"使用本地HTTP服务器可能比以非预期的方式(如Chrome命令行参数)强制执行更容易。在处理本地url (file://而不是http://)时,浏览器的行为有很多不同的方式,所以从一开始就有一个"现实"的环境通常会更好。

从错误消息中的路径猜测,看起来你正在运行Mac OS X,我认为默认安装了Python 2.7,所以运行本地HTTP服务器而无需安装任何东西的一种非常简单的方法是调用:

python -m SimpleHTTPServer

在终端中,在您的CreateJS项目的根文件夹中。