CORS 标头出现在您尝试调用的系统的响应中。 (这些在客户端[又名浏览器这种情况下]进行检查,您可以在后端实现调用以进行这些调用,并且在那里您可以忽略这些标头,但这可能会变得非常难以维护。)要更改那些你'需要proxy。所以你的应用程序不会像直接调用url一样
fetch("http://localhost:9090/api/sometest")
至少有两种方法:一种是在声纳服务器前直接添加代理,为大家修改header。出于安全原因,我真的不推荐这个。 :)
另一个更易于维护的解决方案是通过监控网络应用程序的本地域,如下所示:
fetch("/proxy/nexus/api/sometest")
要实现这一点,您需要在您的应用程序运行的地方设置一个代理。这可以映射您所依赖的不同服务,并在必要时修改标头。
我不知道你要使用哪个应用程序http server,但这里有一些关于该主题的代理配置文档:
对于 Apache HTTPD mod_proxy,您可以使用类似于以下的配置:
ProxyPass "/proxy/nexus/" "http://localhost:9090/"
ProxyPassReverse "/proxy/nexus/" "http://localhost:9090/"
可能还需要使用 cookie,因此您可能需要查看以下配置:
对于 Nginx location,您可以使用以下内容
location /proxy/nexus/ {
proxy_pass http://localhost:9090/;
}
对于 node.js,请参阅文档:https://github.com/nodejitsu/node-http-proxy
module.exports = (req, res, next) => {
proxy.web(req, res, {
target: 'http://localhost:4003/',
buffer: streamify(req.rawBody)
}, next);
};