前后端跨域问题解决方法

1、从后端解决

下面是用node解决的方案

在express中,在app.js中加入

app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By",' 3.2.1')
    if(req.method=="OPTIONS") res.send(200);/*让options请求快速返回*/
    else  next();
});

在koa中,可以引入koa-cors

const cors = require('koa-cors');
app.use(cors());

2、从前端解决

下面是vue解决的方案,拿vue-cli3举例,在vue.onfig.js里面加入devServer

devServer: {
        proxy: {
            '': {
                target: 'http://localhost:3000', 
                changeOrigin: true,
                ws: true

            }
        }
    },

以上是在开发过程中解决的方法,打包之后这样接口就会调用失败,显示404

所以在打包之后还需要再nginx中配置代理

location / {
                proxy_set_header   Host             $host;
                proxy_set_header   x-forwarded-for  $remote_addr;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_pass http://127.0.0.1:3000; // 接口地址,如果在同一个服务器上,可以直接这样写
        }    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值