axios 获取不到数据错误
1.问题:
打算学习下vue,但是vue-resource作者已经不更新了,并且大家都建议用axios来进行前后端交互,所以就从学习axios开始。
但是在使用 axios 的过程中,自己写的接口竟然访问不到,jquery可以访问但是axios不能访问。post也能访问就是axios不能访问。
axios.post('test',{})
.then(function (response){
console.log('axios.post:');
console.log(response.data);
})
.catch(function (error){
console.log(error);
});
axios({
url: 'test',
method: 'post',
responseType: 'json', // 默认的json
data: {
//'a': 1,
//'b': 2,
}
}).then(function (response) {
console.log('axios:');
console.log(response);
console.log(response.data);
}).catch(function (error) {
console.log(error);
});
$.ajax({
type: 'POST',
url: 'test',
data: {},
success: function(data) {
console.log("ajax:");
console.log(data);
},
error: function() {}
});

可以看到 axios 为null;
2.原因:
单个字符串json没有解析,直接返回的text格式。。。。
@RequestMapping(value="/test") public String test() { return "hello world!"; }
3.解决:
把 responseType: 'json' 改成 responseType: 'text'
即可。

但是 post 方法 和 jquery 就没有这种烦恼,不管是 text 还是 json 都能直接判断,可能是 responseType 这个属性写死的缘故吧。
如果有前端大佬解释下不胜感激。

浙公网安备 33010602011771号