gpt4 book ai didi

maven - 如何在Sonatype Nexus上启用CORS?

转载 作者:行者123 更新时间:2023-12-04 04:25:09 26 4
gpt4 key购买 nike

我想使用AngularJS作为前端开发针对不同事物的Monitoring-WebApp。核心元素之一是Nexus Artifact/存储库的概述。
当我请求REST-API时,出现以下错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:9090' is therefore not allowed access.

要解决此错误,我需要修改响应 header 以启用CORS。

如果有人熟悉这种类型的问题并可以给我答案,那就太好了!

最佳答案

CORS header 出现在您尝试调用的系统的响应中。 (在客户端(在这种情况下,也称为浏览器)中进行了检查,您可以在后端实现一个调用以拥有这些调用,并且可以忽略这些 header ,但这可能变得很难维护。)要更改这些 header 我需要一个proxy。因此,您的应用程序将不会像

fetch("http://localhost:9090/api/sometest")

至少有两种方法:一种是直接在声纳服务器之前添加代理,然后为每个人修改 header 。由于安全原因,我不建议这样做。 :)

另一个更可维护的解决方案是按以下方式遍历监视Web应用程序的本地域:
fetch("/proxy/nexus/api/sometest")

为此,您需要在运行应用程序的地方设置代理。这可以映射您依赖的不同服务,并在必要时修改 header 。

我不知道您要使用哪个应用程序 http server,但是以下是有关该主题的一些代理配置文档:

对于 Apache HTTPD mod_proxy ,您可以使用类似于以下的配置:
ProxyPass "/proxy/nexus/" "http://localhost:9090/"
ProxyPassReverse "/proxy/nexus/" "http://localhost:9090/"

可能也有必要使用cookie,因此您可能需要查看以下配置:
  • ProxyPassReverseCookiePath
  • ProxyPassReverseCookieDomain

  • 对于 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);

    };

    关于maven - 如何在Sonatype Nexus上启用CORS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32393899/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com