【问题标题】:Enable Cors on Google Compute Engine在 Google Compute Engine 上启用 Cors
【发布时间】:2019-11-18 21:05:24
【问题描述】:

我在 Google Compute Engine 上部署了一个 node.js API 和一个网站,一切都在我的本地机器上运行良好,而且它们都单独运行良好,但每当我调用我的 API 时,我都会收到以下信息:

Access to XMLHttpRequest at 'my-api-domain' from origin 'my-website-domain' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我使用 express 并且我使用 cors 中间件来处理 CORS,它可以在我的机器上运行,但似乎 google 禁用了这种响应标头。

我的快速设置

const express = require('express')
const bodyParser = require('body-parser')
const user = require('../routes/user')
const cors = require('cors')

module.exports = function(app) {
    app.use(cors())
    app.use(express.json())
    app.use( bodyParser.json())
    app.use(bodyParser.urlencoded({
        extended: true
    }))
}

注意: 我尝试从浏览器向 api 发送一个 get 请求,它可以工作,我在响应标头中收到 access-control-allow-origin: *

但是当我从网站的来源调用相同的端点时,这些标头不会被发送。

【问题讨论】:

  • 你的架构是什么?您是否直接访问您的虚拟机?您是否在服务器前使用负载均衡器或其他层?
  • 浏览器在 devtools 控制台中记录的确切错误消息是什么?响应的 HTTP 状态码是什么?您可以使用浏览器开发工具中的网络窗格进行检查。是 4xx 还是 5xx 错误而不是 200 OK 成功响应?

标签: node.js express cors


【解决方案1】:

如果您回答 guillaume blaquiere 和 sideshowbarker 的问题,我们能够提供更好的支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 2017-12-24
    • 2017-05-04
    • 2020-12-11
    • 2017-01-27
    • 2014-01-23
    • 2020-09-23
    相关资源
    最近更新 更多