本文共 625 字,大约阅读时间需要 2 分钟。
1. 向服务器请求两次的情况
-
(1)axios的默认请求头是Content-Type: application/json,使用这个请求头会出现向服务器请求两次的情况; (2)浏览器会首先使用 OPTIONS 方法发起一个预请求,判断接口是否能够正常通讯,如果不能就不会发送真正的请求过来, 如果测试通讯正常,则开始真正的请求;
浏览器对后台说:我可以请求你吗? ( ̄ˇ ̄) 后台说:阔以。( ̄▽ ̄)~*结果是:发送原有的GET(POST)请求后台说:不阔以。(‵﹏′)结果是:报错
-
(3)解决方法:设置axios的默认请求头axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded' (使用qs模块可以不设置,qs模块会自己设置。); (4)设置之后,后台不认这个数据格式,所以在传递的时候必须先把数据转换格式;
// step1. npm install qs// step2. 在main.js中,引入qs模块import qs from 'qs';// 需要时调用qs.stringify()方法this.$axios.post('api/login', qs.stringify({ name: 'xxx', password: '********' }).then(res => { }).catch(err => {});
转载地址:http://zovhl.baihongyu.com/