Express 是否默认禁用 CORS?

Mat*_*ary 7 http node.js cors express server

我被要求确保我设置的新快速服务器强制执行跨源资源共享 (CORS),除非请求来自特定 URL。

我在这里找到了官方的 express CORS 中间件:https : //github.com/expressjs/cors

如果我想为所有请求启用 CORS,那么我只需要添加app.use(cors()).

如果我只想允许指定的 url,那么我可以这样传递它们:

var corsOptions = {
  origin: 'http://example.com',
  optionsSuccessStatus: 200 
}

app.use(cors(corsOptions))
Run Code Online (Sandbox Code Playgroud)

正确的?

如果我想阻止所有来源/URLS 访问我服务器上的资源怎么办?

这只是 Express 的默认行为吗?

如果我跳过上面所有这些代码,那么我的服务器将受到所有请求的保护?

如果我没有使用 CORS 中间件启用 CORS,我如何能够使用邮递员来测试服务器请求?

谢谢!

Joe*_*lay 8

如果您不启用 CORS 中间件,您的服务器响应将不包含 CORS 标头,并且浏览器将回退到标准的同源策略(即,只有相同协议、域和端口上的脚本才能访问它)。

请注意,这一切都不是在服务器端强制执行的 - CORS 只是向浏览器提供信息以允许其做出决定,并且没有什么可以阻止浏览器实现简单地忽略 CORS 标头或同源策略。例如,像 Postman 这样的 HTTP 客户端通常会完全忽略 CORS,因为它与它们无关。