example.com上的我的SPA应用程序向example.com/api发出请求。 AFAIK这应该不需要任何access-control-allow-origin
标头,因为源和目标是相同的。
但是我遇到以下错误;
SEC7120:[CORS]找不到源“ https://example.com” Access-Control-Allow-Origin响应中的“ https://example.com” 跨域资源的标头位于 'https://example.com/iam/blablablabla'
此应用程序可在Chrome或Firefox上完美运行。它仅在Edge上失败。我在这里缺少什么吗?您能告诉我一些指导来理解我遇到的问题吗?
P.S;我继续前进,并在服务器上将域添加为允许的CORS来源。也不行。
答案 0 :(得分:1)
我遇到了同样的问题,并且经历了寻找修复程序的艰苦过程。
这与Edge在版本42.17434中的提取实现中的错误有关。此问题已在版本44.17763(2018年11月及以后)中修复。单击右上角的省略号,单击“设置”,然后滚动到底部,即可找到Edge版本。
此问题的核心在于,尽管大多数浏览器实现在忽略凭据选项时都发送默认选项credentials: 'same-origin'
,但Edge不会。您可以通过在请求中添加凭据same-origin选项来为旧的Edge版本修复此问题:
fetch(url, { credentials: 'same-origin' });
相关边缘发行票据: