在 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