我正在尝试通过提取使用以下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
标志结合使用,还是不可行。
您对为什么不允许这样做有任何想法吗?
你知道我要做什么才能做请求吗?
我对此是否正确理解?
答案 0 :(得分:2)
您引用的文档不再适用。在那个旧文档中,API是通过HTTP而不是HTTPS来提供的。 CORS不适用于HTTP,也不会有问题。
在latest documention中,该API通过HTTPS提供。为了满足CORS的要求,他们还消除了对Cookie的需求,将其更改为作为请求的一部分发送的subscr_token
和sid_token
参数:
版本1.5,2011年5月30日
-删除了对Cookie的要求,添加了subscr_token和sid_token参数