0

我不断收到这个奇怪的错误,当我尝试设置我的授权标头时,我不断收到“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);
                                    }
                                });
                            }
                        }
                    });
4

1 回答 1

0

事实证明,IE 出于某种原因为 readyState==1 触发了两次 readystatechange。我不知道为什么,但确实如此。它第二次调用它使其抛出错误。所以这是我的解决方案:

在第一次调用它之后,我只是删除了监听器。

$("#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);
                                    }
                                });
                            }
                        }
                    });
于 2018-05-29T16:34:48.440 回答