我当前正在尝试实施此解决方案here。由于我是这两个主机的所有者,因此该解决方案似乎非常简单且可行。在mysite1.com上,我添加了以下img
标签。
<img src="//mysite1.com.com/cookie_set/" style="display:none;">
在我的site2.com(django)上,我有一个类似的视图:
def cookie_set(request):
response = HttpResponse()
response.set_cookie('my_cookie', value='awesome')
return response
当我实时发布此代码时。我收到以下错误:
Cross-Origin Read Blocking (CORB) blocked cross-origin response https://www.mysite2.com/cookie_set/ with MIME type text/html. See https://www.chromestatus.com/feature/121212121221 for more details.
我认为,如果我只是添加"Access-Control-Allow-Origin"
可能会解决问题,但是根据此处的文档https://www.chromium.org/Home/chromium-security/corb-for-developers,还有更多考虑因素:
例如,它将阻止从或标记请求的跨域文本/ html响应,而将其替换为空响应。
我的假设正确吗?添加正确的标题后,我应该只将内容类型更改为text/html
以外的其他内容吗?
最终,我的最终目标是要为我可以控制的其他域设置一个Cookie(最好没有重定向)。
答案 0 :(得分:0)
最佳解决方案:为此使用其他标签。 (即iframe)。
CORB的要点是防止某些标签用于XSSI数据注入,因此img标签请求不应返回text / html,application / json或xml内容类型。
因此,除非对img标签的调用确实是用于捕获请求本身(例如,对于引荐来源跟踪),否则无论如何都通过在iframe中执行(例如,对于SSO重定向工作流),您将获得更多的功能。
另请参阅:Setting third party cookie by using 1x1 <img> tag - Javascript doesn't drop cookie
答案 1 :(得分:0)
我通过更新S3的“属性”下的Content-Type
元数据-JPEG文件的image/jpeg
和PNG文件的image/png
,修复了图像文件的问题。
我的应用程序通过multer-s3上传了图像文件,看来它适用于Content-Type: 'application/x-www-form-urlencoded'
。它具有contentType option,具有内容类型自动检测功能-这样可以防止标题不正确并解决CORB问题。
似乎最新的Chrome 76版本更新包括侦听远程文件URL标头,尤其是Content-Type
。对于其他浏览器(例如Firefox,Safari和应用内浏览器),CORB并不是问题。 Instagram。