什么是跨域请求
在 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
:
npm install cors -S
然后,在 Express.js 应用程序中添加以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---- - ---------------- ----- --- - ---------- ---------------- -- ---------- ---------------- -------- -- - ----------------------- ---
如上代码中,我们使用 app.use(cors())
来启用 CORS 中间件,这时我们的服务器就可以接收跨域请求了。
不过,默认情况下,cors()
中间件会允许来自任何来源的跨域请求,这对于安全性来说是不够满足的。为此,我们可以通过 cors
的配置参数来设置允许的来源,如下:
app.use( cors({ origin: 'http://example.com' }) );
在以上代码中,我们把 origin
参数设置为 http://example.com
,这样就只允许从 http://example.com
发起的跨域请求。
总结
通过本文的介绍,我们了解了什么是跨域请求、CORS 技术以及如何在 Express.js 中实现 CORS 跨域请求,这对于前端开发工作来说是很有指导意义的。
注意,CORS 只是一种安全机制,我们在开发 Web 应用程序时还需要考虑更多的安全问题,以确保应用程序的安全性。
完整示例代码请参见以下链接:
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c35b0d83d39b488175d04c