首页 > 解决方案 > Microsoft Edge 不接受匿名跨域?

问题描述

在 Facebook Instant Games 平台上,您可以使用以下代码加载用户的照片:

 var playerImage = new Image();
 playerImage.crossOrigin = 'anonymous';
 playerImage.src = FBInstant.player.getPhoto();

绕过 CORS 需要将 crossOrigin 属性设置为匿名,这是官方 Instant Games 文档推荐的。

这适用于除 Microsoft Edge 之外的所有浏览器,它会引发类似于以下内容的错误:

源在跨域图像资源的 Access-Control-Allow-Origin 响应标头中未找到 xxx

这是可以修复的还是我们应该告诉我们的用户使用另一个浏览器?我们收到了大量来自人们抱怨无法玩游戏的某些部分的消息,而且他们似乎都在使用 Edge。很想检测 Edge 并显示一条消息,告诉他们在这个阶段使用 Chrome。

当您请求个人资料图像时服务器的响应:

access-control-allow-origin: *
cache-control: max-age=1209600, no-transform
content-disposition: attachment
content-length: 12954
content-type: image/jpeg
date: Thu, 14 Feb 2019 12:45:52 GMT
last-modified: Tue, 25 Apr 2017 21:24:05 GMT
status: 200
x-fb-config-version-olb-prod: 449
x-haystack-needlechecksum: 821392244

标签: javascriptcorsmicrosoft-edgefacebook-instant-games

解决方案


推荐阅读