如何在 Express.js 中实现 CORS 跨域请求

阅读时长 3 分钟读完

什么是跨域请求

在 Web 应用程序中,当来自一个域(网站)的 JavaScript 代码试图访问另一个域的资源时,就会出现跨域请求。这是由于浏览器的同源策略造成的,这个策略要求客户端 Web 应用程序只能与其来源相同的服务器进行交互。

在前端开发中,由于跨域请求的限制,我们无法直接从一个域向另一个域发送 AJAX 请求,这时就需要用到 CORS 技术。

什么是 CORS

CORS(Cross-Origin Resource Sharing)是一种机制,它允许 Web 应用程序或 Web 页面向不同的域发送 XMLHttpRequests 跨域请求。

在 CORS 机制中,我们需要在服务器端添加一些特殊的 HTTP 头,这些头告诉浏览器哪种跨域请求是允许的,哪种是禁止的。通过这种方式,我们就能够安全地使用 AJAX 向不同的域发送请求。

在 Express.js 中实现 CORS

在 Express.js 中设置 CORS 的方法非常简单,只需要使用一个 Node.js 的中间件 —— cors

首先,在项目根目录下执行以下命令安装 cors

然后,在 Express.js 应用程序中添加以下代码:

-- -------------------- ---- -------

----- ------- - -------------------
----- ---- - ----------------

----- --- - ----------

----------------

-- ----------

---------------- -------- -- -
  -----------------------
---

如上代码中,我们使用 app.use(cors()) 来启用 CORS 中间件,这时我们的服务器就可以接收跨域请求了。

不过,默认情况下,cors() 中间件会允许来自任何来源的跨域请求,这对于安全性来说是不够满足的。为此,我们可以通过 cors 的配置参数来设置允许的来源,如下:

在以上代码中,我们把 origin 参数设置为 http://example.com,这样就只允许从 http://example.com 发起的跨域请求。

总结

通过本文的介绍,我们了解了什么是跨域请求、CORS 技术以及如何在 Express.js 中实现 CORS 跨域请求,这对于前端开发工作来说是很有指导意义的。

注意,CORS 只是一种安全机制,我们在开发 Web 应用程序时还需要考虑更多的安全问题,以确保应用程序的安全性。

完整示例代码请参见以下链接:

Github 代码

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c35b0d83d39b488175d04c

纠错
反馈