nodeJS 处理跨域

  我们所请求的url地址分为三部分,分别为:

         协议

         IP地址

         端口号

   以上三者,有任何一个不同,则会出现跨域问题

        我们可以在nodejs中利用CORS来处理跨域问题

  比如我们向后台去发送一个请求,如果此时发生了跨域问题,那么我们可以在后台使用node去写一个服务器代理,来处理跨域,具体如下:

    1. 首先 更改你前端页面的访问地址为你node写的代理服务器的地址,如下所示:

    

    axios.post('代理服务器的地址').then((r)=>{

        console.log(r)console.log(r)



    })

  2.然后在服务器代理中监听请求,并且利用CORS解决跨域问题

  

//若遇到跨域访问获取数据时先访问这个服务器地址就行
const express = require("express");
const cors = require("cors");
const { get } = require("axios").default; //利用axois发送个网络请求
const app = express();
app.use(cors()); //就这一部就已经解决了跨域


//如果访问的是本地服务器,现在这步就相当于已经解决了跨域问题
//如果访问其他地址的服务器,那么此处就相当于一个服务器代理,解决跨域问题
 
app.use(express.json());
app.use(express.urlencoded());
 
//服务器的代理请求地址
app.post("/proxy", async(req, res) => {
    const result = await get(req.body.url); //这里相当于发了一个网络请求,这不存在跨域,就像你在浏览器中直接输入请求的地址一样
    res.json({
        code: 1,
        info: result.data,//axios请求的数据放在返回数据的data属性中
    });
});


app.listen(8080, () => {
    console.log("本地代理服务器运行在8080端口");
});

     这个文件就是一个单独的专门用来做服务器代理解决跨域的,只要运行这个文件将这个服务器打开就行了

    解决跨域的方法有很多,这只是其中一种哦,希望对你有所帮助~

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值