【发布时间】:2018-07-30 23:10:03
【问题描述】:
vue2 中的 axios put 请求有问题 以下代码用于保存更新表单。
有 2 个流程调用此方法。
- 您单击一个组织,window.location.hash 更改为用户填写表单并单击保存的组织 ID
- 用户转到带有 window.location.hash 在 url (#1 (#id)) 中的组织的页面,用户填写表单并点击保存
代码:
/**
* Handle the update form.
*
* @param {array} selected
* @return {Promise}
*/
update(selected) {
this.$refs.updateForm.validate();
console.log('1');
return new Promise((resolve, reject) => {
console.log('2');
if (this.updateForm.valid) {
console.log('3');
this.$http
.put('organisation/' + selected[0].id, this.updateForm.values)
.then(() => {
console.log('10');
resolve();
})
.catch(error => {
console.log('NO');
console.log(error)
});
console.log('4');
}
});
},
结果: 如果 1 一切正常,console.log:
OrganisationResource.vue?2497:135 1
OrganisationResource.vue?2497:138 2
OrganisationResource.vue?2497:140 3
OrganisationResource.vue?2497:151 4
OrganisationResource.vue?2497:144 10
如果情况 2 不起作用,则不会发出请求,console.log:
OrganisationResource.vue?2497:136 1
OrganisationResource.vue?2497:138 2
OrganisationResource.vue?2497:140 3
同样情况2,axios请求拦截器中的console.log不是 触发。在流程 2 之后,您在不刷新页面的情况下启动流程 1,它可以完美运行
我也不知道如何进一步调试。
【问题讨论】:
标签: javascript http vue.js vuejs2 axios