用原生ajax调用正常,换成vue自带的请求接口方式就会报错。而且后端数没有接收到,经过研究发现罪魁祸首是 vue 中 __ob__: Observer造成的。
ajax 正常:
vue:
解决办法:
先导入模块:
import qs from 'qs';
然后用qs.stringify()将对象 序列化成URL的形式,以&进行拼接
然后 qs.stringify(form)) 这样就把form对象转换成username=zhangshan&password=123456 这样的格式后,后端接受数据就正常了。
import request from '@/utils/request'
import qs from 'qs'
export function login(data) {
data = qs.stringify(data)
return request({
url: 'WebServices/SystemService.asmx/Login',
method: 'post',
data
})
}
具体方法见: