【发布时间】:2019-11-22 08:43:20
【问题描述】:
这可能是重复的,但我还没有找到专门与我的问题相关的线程。
我正在进行以下 API 调用:
const config = {
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET,PUT,POST,DELETE,PATCH,OPTIONS"
}
};
const {
data: { ip }
} = await axios.get("https://api.ipify.org?format=json", config);
这会引发错误:
Access to XMLHttpRequest at 'https://api.ipify.org/?format=json' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
当我将应用部署到 Heroku 时,API 调用按预期工作。但是,在我的本地机器上开发时它不起作用。不知道我在这里缺少什么。
【问题讨论】:
-
你是只用 react 还是别的?
-
React 前端,Node 后端
-
这个问题被问了一遍又一遍。 TL;DR 除非
server-b允许,否则domain-a的脚本无法获取domain-b的内容。domain-a脚本中的设置 CORS 选项不会授予您更多权限,只有server-b处的更改才会授予您。 -
@NinoFiliu 所以在这种情况下 domain-b 允许 Heroku 域,但不允许 localhost?