后端已做了跨域处理,后端是tp5做的

Nginx

 

tp控制器里引入use think\facade\Hook;   

在方法中调用  Hook::listen('my_cors'); 

 

问题:vue前端使用 await axios.get请求没问题,但是post请求会提示跨域

原因:

网上百度资料:跨域分为 简单跨域请求和复杂跨域请求:简单跨域请求是不会发送options请求的。

把request method:options 变成post,查询文档发现默认发送的是字符串格式,需要将其转化成URL的格式,以&进行拼接。

可以引入qs解决问题

 

方法步骤:

1、vue 引入qs

npm install qs

import qs from 'qs'
 
2、在请求方法中加入  qs.stringify(updata)      updata是需要上传的数据
await axios.post('api',qs.stringify(updata)).then(function(res){
           
        }).catch(function (error) {
           
        });
 
 
结果完美解决!