作者:-不想醒来-县 | 来源:互联网 | 2023-08-24 09:22
后端已做了跨域处理,后端是tp5做的Nginx tp控制器里引入usethink\facade\Hook; 在方法中调用 Hook::listen(my_cors); 问题:v
后端已做了跨域处理,后端是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) {
});
结果完美解决!