javascript:由于通配符而被CORS政策阻止

时间:2019-09-01 05:16:45

标签: javascript cors fetch wildcard

我正在尝试通过提取使用以下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标志结合使用,还是不可行。

您对为什么不允许这样做有任何想法吗?
你知道我要做什么才能做请求吗?
我对此是否正确理解?

1 个答案:

答案 0 :(得分:2)

您引用的文档不再适用。在那个旧文档中,API是通过HTTP而不是HTTPS来提供的。 CORS不适用于HTTP,也不会有问题。

latest documention中,该API通过HTTPS提供。为了满足CORS的要求,他们还消除了对Cookie的需求,将其更改为作为请求的一部分发送的subscr_tokensid_token参数:

  

版本1.5,2011年5月30日
  -删除了对Cookie的要求,添加了subscr_token和sid_token参数