Vue.js / Vuex + axios отправляет несколько запросов PUT - PullRequest
0 голосов
/ 02 октября 2018

Пользователь в моем 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);
            },
            // ...
        }
    }
}

Снимок экрана из Firefox: Networklog from Firefox

Снимок экрана axios Ошибка: axios Error

Обновление 1 (15.10.2018)

Это код из моего .NET Core Controller

    [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 });
    }

1 Ответ

0 голосов
/ 15 октября 2018

Проблема : Аксиосам не нравится перенаправляться после запроса пут:)

Решение (временная) : Не перенаправлять ...

Решение : Я создам проблему в трекере проблем Axios на Github.>>> https://github.com/axios/axios/issues/1829

...