【问题标题】:How to allow Access-Control-Allow-Private-Network with an NodeJS / Express webserver?如何使用 Node JS / Express Web 服务器允许访问控制允许私有网络?
【发布时间】:2022-07-30 23:38:23
【问题描述】:

我有一个 Intranet 网络服务器。它没有任何类型的证书,可以通过 http 访问。从技术上讲,它是一个公共 IP,但没有公共路由。

在这个网络服务器上,我有一个单页应用程序,它需要在不同的服务器(我也控制)上调用 https api nodejs/express 端点。我只需要添加 cors 库并“使用”它: app.use(cors()) 这工作了一个月左右。

现在,当我这样做时,我收到以下错误:

请求客户端不是安全上下文,资源在 更私密的地址空间private

搜索,把我带到这里:Chrome CORS error on request to localhost dev server from remote site,它实际上是说“让你的服务器 https”。

其他答案表明添加标题:Access-Control-Allow-Private-Network: true 就足够了。这由此处的文档支持:https://wicg.github.io/private-network-access/#:~:text=The%20Access%2DControl%2DRequest%2D,safely%20shared%20with%20external%20networks 表示:

Access-Control-Allow-Private-Network 表示资源可以 与外部网络安全共享。

我已经通过添加在 api 服务器上尝试了这个

app.use((req, res, next) => {
    res.setHeader("Access-Control-Allow-Private-Network", "true")
    next();
})

就在我之前添加的app.use(cors()) 行之后。

这给我留下了:

const app = express()
app.use(express.urlencoded({ extended: true }))
app.use(cors())
app.use((req, res, next) => {
    res.setHeader("Access-Control-Allow-Private-Network", "true")
    next();
})
app.use(express.json())
app.use('/api', jobRouter);

这并不能消除错误。

需要做什么才能让我的内网非http服务器访问https服务器?我控制双方。

【问题讨论】:

    标签: node.js express cors http-headers private-network-access


    【解决方案1】:

    你找到解决这个问题的方法了吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 2017-09-15
      • 1970-01-01
      • 2017-06-19
      • 2019-07-09
      • 1970-01-01
      • 2020-01-21
      相关资源
      最近更新 更多