【发布时间】:2020-01-04 16:34:21
【问题描述】:
我正在尝试使用 fetch 使用以下 api 端点:
https://api.guerrillamail.com/ajax.php?f=check_email&ip=${ip}&agent=${agent}
(outdated documentation)
当我设置credentials: 'include' 时出现以下错误:
Access to fetch at 'https://api.guerrillamail.com/ajax.php?...' has been blocked by CORS policy: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'.
我必须设置标志才能提交 cookie 进行身份验证。
在谷歌搜索这个问题 1++ 小时后,我的理解如下:
CORS 必须是服务器端允许能够向其他域发出“非简单”请求,例如localhost => guerrillamail.com 为防止滥用,必须将变量 Access-Control-Allow-Origin 设置为应允许发送请求的域。有效选项是“*”,这意味着所有来源都可以。
出于某种原因,尽管与credentials: 'include 标志结合使用是不行的。
您知道为什么不允许这样做吗?
你知道我必须做什么才能完成请求吗?
我对此的理解正确吗?
【问题讨论】:
-
api.guerramail.com 服务器应该发送该标头。如果您无法控制该服务器,则需要联系他们。
标签: javascript cors fetch wildcard