【发布时间】:2020-03-12 13:52:46
【问题描述】:
尝试调用远程 API Url,但出现 Access-Control-Allow-Origin 错误。我尝试了很多类似以下的方法,但没有任何效果。
proxy.conf.js
const PROXY_CONFIG = [
{
context: [
"/api/planets"
],
target: "https://swapi.co",
secure: false,
changeOrigin: true,
logLevel: "debug",
bypass: function (req, res, proxyOptions) {
req.headers["Access-Control-Allow-Origin"] = "*";
req.headers["X-Forwarded-Host"] = "localhost:8090";
req.headers["X-Forwarded-For"] = "localhost";
req.headers["X-Forwarded-Port"] = "8090";
req.headers["X-Forwarded-Proto"] = "http";
}
}
];
module.exports = PROXY_CONFIG;
与ng serve --port 8090 --proxy-config proxy.conf.js一起运行
无法在服务器端进行任何更改,因为我使用的是第三方 API。
【问题讨论】:
-
有一个 chrome 插件可以帮助你解决 cors 错误。你会在谷歌上找到它。让我知道这是否有效
-
我也有类似的问题,但很多只需要在服务器本身配置以允许 CORS,在您的情况下,您需要请第三方帮助为您检查。
-
Access-Control-Allow-Origin是一个响应头 developer.mozilla.org/en-US/docs/Web/HTTP/Headers/…。将其包含在请求中是无效的。 -
"无法在服务器端进行任何更改,因为我使用的是第三方 API。"看起来服务器响应没有正确配置,无论是有意还是无意。如果您无法修改标头或让作者进行更改,解决方法是设置自己的代理服务器来传递请求,然后以请求+正确的 CORS 标头进行响应。
-
@ketan:太棒了。添加它作为答案,因为这个问题在stackoverflow上非常常见。希望它也能帮助其他人。干杯!
标签: javascript angular cors