闲着没事打算把老的后台系统用vue撸一遍。用的是quasar框架,ajax用axios,还配置了webpack-dev-server的proxy作为代理服务器。
刚上手做了个登录页面就出问题了。老的后台是使用session配合cookie做登录验证的,但我用axios发送的登录请求的响应头没有set-cookie。用chrome的开发者工具查看了下请求,发现post请求的参数是request payload(json的数据格式)的形式发送的,而老系统的参数form data(url的参数格式,例子:name=value&name1=value1)的形式。
所以需要修改post请求的参数形式,axios的方法如下
import axios from 'axios'
import Qs from 'qs'//引入axios自带的qs(不需要额外安装)
...
let config = {
headers: {
'Content-Type':'application/x-www-form-urlencoded' //设置请求头位Content-Type为application/x-www-form-urlencoded
}
}
let data = {
user_name: 'allen',
password: '123456'
}
axios.post('/login',Qs.stringify(data),config).then(...)//用QS.stringify方法将javascript对象编码成url的参数格式
修