InvalidStateError - Загрузка пользовательского интерфейса Kendo - PullRequest
0 голосов
/ 29 мая 2018

Я продолжаю получать эту странную ошибку, при которой, когда я пытаюсь установить свой заголовок авторизации, я получаю 'InvalidStateError'.Вот мой код:

$("#files").kendoUpload({
                        async: {
                            saveUrl: myApiUrl + "/" + id,
                            autoUpload: true
                        },
                        upload: function(e) {
                            var xhr = e.XMLHttpRequest;
                            if (xhr) {
                                xhr.addEventListener("readystatechange", function onReady(e) {
                                    if (xhr.readyState === 1 /* OPENED */) {
                                            xhr.setRequestHeader("Authorization", "Bearer " + accessToken);
                                    }
                                });
                            }
                        }
                    });

1 Ответ

0 голосов
/ 29 мая 2018

Оказывается, что IE по какой-то причине дважды запускает readystatechange для readyState == 1.Я не знаю почему, но это так.Это второй раз, когда он вызывает его, что заставляет его выдавать ошибку.Итак, вот мое решение:

После первого вызова, я просто удаляю слушателя.

$("#files").kendoUpload({
                        async: {
                            saveUrl: myApiUrl + "/" + id,
                            autoUpload: true
                        },
                        upload: function(e) {
                            var xhr = e.XMLHttpRequest;
                            if (xhr) {
                                xhr.addEventListener("readystatechange", function onReady(e) {
                                    if (xhr.readyState === 1 /* OPENED */) {
                                        xhr.setRequestHeader("Authorization", "Bearer " + accessToken);
                                        xhr.removeEventListener("readystatechange", onReady);
                                    }
                                });
                            }
                        }
                    });
...