Haxe / OpenFL无需访问服务器即可解决CORS错误?

时间:2017-11-17 20:24:47

标签: haxe openfl

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

他们所有人都在讨论在服务器设置中更改访问头所需的服务器端设置,或者将头部自己放在php文件中等。

但我正在使用Access-Control-Allow-Origin类加载图像,而我无法访问该服务器。

如何更改:

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

我尝试使用URL请求推送标题:

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);

但不管我做了什么:

我收到此错误:

enter image description here

完整的代码段:

{{1}}

2 个答案:

答案 0 :(得分:0)

为了启用跨源请求,需要在服务器端添加标头。另一种方法是禁用Web安全性:

Disable same origin policy in Chrome

OpenFL 6.3.0上有一个时间窗口(在6.4.0发布之前),openfl.net.Loader的默认行为(关于CORS)有一个回归,但这在OpenFL中得到了解决6.4.0或更新。

答案 1 :(得分:0)

这是用于开发目的吗?我只是因为涉及127.0.0.1网址而提问。您似乎正在127.0.0.1:3000上托管游戏并在www.___.com/___.jpg申请网址,是吗?

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

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