当前位置:   article > 正文

node.js express cors解决跨域_node cors 中间件配置

node cors 中间件配置

目录

什么是跨域

示例

postman请求

前端请求

cors中间件解决跨域

流程

配置cors参数


什么是跨域

跨域(Cross-Origin)是指在 Web 开发中,当一个网页的源(Origin)与另一个网页的源不同时,就发生了跨域。同源策略(Same-Origin Policy)是浏览器的一项安全策略,限制了一个源下的文档或脚本如何能与另一个源下的资源进行交互。

同源是指两个 URL 具有相同的协议(http/https)、主机(domain)和端口(port)。如果这两个URL的这三个部分中任何一个不同,就被认为是不同源即跨域。

示例

开启一个node服务,服务地址为http://127.0.0.1:3000

postman请求

postman对服务发起post登录请求

请求成功。postman不受跨域影响,原因主要是因为postman是一个独立的桌面应用程序,而不是运行在浏览器中的 Web 应用。

前端请求

开启一个前端项目服务,比如vue

发起登录请求

  1. <script setup>
  2. import axios from 'axios'
  3. const authLogin = async () => {
  4. try {
  5. const { data } = await axios.post('http://127.0.0.1:3000/api/v1/users/login', {
  6. "email": "adasdasasda1@qq.com",
  7. "password": "pass1234"
  8. })
  9. } catch (error) {
  10. throw new Error(error)
  11. }
  12. }
  13. </script>
  14. <template>
  15. <main>
  16. <button @click="authLogin">sign</button>
  17. </main>
  18. </template>

浏览器跨域报错

cors中间件解决跨域

流程

1、安装cors依赖

npm i cors

2、引入依赖

const cors = require('cors');

3、注册中间件

全局注册cors中间件

app.use(cors());

 或为某个路由注册cors中间件

router.post('/path', cors(), controller);

vue服务进行post请求

请求成功,看到响应头Access-Control-Allow-Origin为*, 为cors的默认设置

配置cors参数

  1. const corsOptions = {
  2. origin: 'http://192.168.110.61:5173',
  3. //...
  4. };
  5. app.use(cors(corsOptions));

origin: 允许访问资源的特定源

通过查阅github文档查看其他配置

GitHub - expressjs/cors: Node.js CORS middleware

用cors中间件配置同以下

  1. app.all("*", (req, res, next) => {
  2. //设置允许跨域的域名,*代表允许任意域名跨域
  3. res.header("Access-Control-Allow-Origin", "http://192.168.110.61:5173");
  4. })
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/69018?site
推荐阅读
相关标签
  

闽ICP备14008679号