Haxe / OpenFL 在无法访问服务器的情况下解决 CORS 错误?

Haxe / OpenFL solving CORS error without having access to the server?

我知道 HTML5 标签中有很多关于 CORS 政策的问题。

他们都在谈论服务器端设置,您需要在服务器设置中更改访问 headers 或将 headers 自己放入 php 文件等。

但我正在使用 Loader class 加载图像,但我无权访问该服务器。

如何更改 :

Access-Control-Allow-Origin*

我尝试用 URL 请求推送 headers :

urlRequest.requestHeaders.push( new URLRequestHeader( 'Access-Control-Allow-Origin', '*' ) );

但不管我做了什么:

我收到这个错误:

完整的代码片段:

loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoadComplete);

var request:URLRequest = new URLRequest();
request.url = "http://www.someserver.com/some_image.jpg";

request.contentType = "image/jpeg"; //tried it didn't make a difference
request.requestHeaders.push( new URLRequestHeader( 'Access-Control-Allow-Origin', '*' ) );

loader.load(request);

为了启用 cross-origin 请求,您 需要在服务器端添加 header。另一种方法是禁用网络安全:

Disable same origin policy in Chrome

OpenFL 6.3.0(在 6.4.0 发布之前)有 window 的时间 openfl.net.Loader(关于 CORS)的默认行为出现回归,但这在 OpenFL 6.4.0 或更新版本中已得到解决。

这是为了开发目的吗?我问是因为涉及 127.0.0.1 URL。您似乎在 127.0.0.1:3000 上托管您的游戏并在 www.___.com/___.jpg 上请求 URL,对吗?

不特别考虑 OpenFL,一个典型的解决方案是 127.0.0.1:3000 的服务器可以具有代理功能,从另一个 Web 服务器获取和提供图像,这样浏览器就看不到差异。

这在现实世界中对您没有帮助,但如果您谈论的是开发环境,也许它是一种解决方法。