Javascript Vue.js和Axios:转换请求返回未定义的数据
我试图使用transformRequest和transformResponse在数据呈现时显示加载程序。当我这样做的时候,它工作得很好,但是现在我的帖子和补丁请求似乎没有得到正确的处理。控制台上并没有错误消息,但当我试图修改某个实体(并发送补丁请求)时,什么也并没有发生。当我删除transformRequest功能时,我可以发送帖子和补丁 谁能解释一下我做错了什么 更新!以下是我在http/index.js中添加的内容:Javascript Vue.js和Axios:转换请求返回未定义的数据,javascript,vue.js,request,axios,Javascript,Vue.js,Request,Axios,我试图使用transformRequest和transformResponse在数据呈现时显示加载程序。当我这样做的时候,它工作得很好,但是现在我的帖子和补丁请求似乎没有得到正确的处理。控制台上并没有错误消息,但当我试图修改某个实体(并发送补丁请求)时,什么也并没有发生。当我删除transformRequest功能时,我可以发送帖子和补丁 谁能解释一下我做错了什么 更新!以下是我在http/index.js中添加的内容: ... transformRequest(data) { console
...
transformRequest(data) {
console.log(data); // returns undefined
store.dispatch('loadingData');
console.log(data) // returns undefined
return console.log(JSON.stringify(data)); // returns undefined
},
transformResponse(data) {
store.dispatch('finishLoadingData');
const parsedData = JSON.parse(data);
if (parsedData.error === 'Access denied') {
cookies.remove('access_token');
window.location = `${config.mainSite}/login`;
}
return parsedData;
},
...
这是商店:
export default {
state: {
loading: false,
},
actions: {
loadingData({ commit }) {
commit('LOADING_DATA');
},
finishLoadingData({ commit }) {
commit('FINISH_LOADING_DATA');
},
},
mutations: {
LOADING_DATA(state) {
state.loading = true;
},
FINISH_LOADING_DATA(state) {
state.loading = false;
},
},
getters: {
getLoading(state) {
return state.loading;
},
},
};
使用时,transformRequest
和transformResponse
接受一系列函数,而不是单个函数。你能试试这个吗
...
transformRequest: [(data) => {
store.dispatch('loadingData');
return data;
}],
transformResponse: [(data) => {
store.dispatch('finishLoadingData');
const parsedData = JSON.parse(data);
if (parsedData.error === 'Access denied') {
cookies.remove('access_token');
window.location = `${config.mainSite}/login`;
}
return parsedData;
}],
...
查看您的axios请求代码也会很有帮助:)Google Chrome上“网络”选项卡下的“标题”选项卡底部是什么意思?