【发布时间】:2019-03-07 15:19:30
【问题描述】:
我的 SPA 上的用户能够添加/更新和删除组。
我已经建立了一个 Vuex 商店和一个 API 帮助模块。在 EditGroup 组件中,当用户按下“保存更改”时,将执行一个方法。
问题是,axios 发送 5 到 20 个 PUT 请求,但该方法只执行一次。在 GET、POST 或 DELETE 请求上,axios 发送一个请求。
在我的 EditGroup 组件中:
saveSelected : function () {
this.$store.dispatch(ACTION_PUT_GROUP, {
data : this.selected
});
},
在我的 Vuex 商店中:
[actionTypes.ACTION_PUT_GROUP]({ commit }, payload) {
api.methods.group.put(payload.data, commit, mutationTypes.EMPTY_MUTATION);
},
在我的 API 帮助模块中:
function _sendRequest(url, method, data, commit, commitHandler) {
axios({
method: method,
data: data,
url: url,
responseType: "application/json"
}).then(function (response) {
commit(commitHandler, response.data);
}).catch(function (error) {
_handle();
});
}
// ...
export default {
methods : {
group : {
// ...
put: function (data, commit, commitHandler) {
_sendRequest("api/group/" + data.Id, "put", data, commit, commitHandler);
},
// ...
}
}
}
更新 1 (15.10.2018)
这是来自我的 .NET Core 控制器的代码
[HttpPut("{id}")]
public IActionResult PutGroup(string id, [FromBody] Group group)
{
if (id != group.Id)
return BadRequest();
// Validation ...
context.CreateOrUpdateItem(group);
// ...
return RedirectToAction(nameof(GetGroup), "Group", new { id = id });
}
【问题讨论】:
-
状态 302 是重定向。是登录问题吗?
-
@eric99 不,请求被重定向到 GET-Endpoint
标签: javascript vue.js axios single-page-application vuex