Ошибка выдачи XMLHttpRequest на действительный URL - PullRequest
0 голосов
/ 28 июня 2018

Я новичок в использовании XMLHttpRequest, и я предполагаю, что мне не хватает чего-то довольно очевидного - у меня есть совершенно правильный URL, который я пытаюсь извлечь из этого в JSON-данных, но когда я вызываю send on onerror, функция выполняется, но onload нет (хотя я получаю 200 обратно). Вы можете увидеть тестовую страницу здесь: https://pwas.resourcedata.com/walkipedia/webrequest.html

        function MakeWebRequest() {
        url = "https://data.wsdot.wa.gov/arcgis/rest/services/Shared/TownshipSection/MapServer/identify?geometry=-13606913.506613478%2C5937651.515662&geometryType=esriGeometryPoint&sr=&layers=all&layerDefs=&time=&layerTimeOptions=&tolerance=1&mapExtent=-13609094.35057674%2C5936620.810108784%2C-13602038.257402979%2C5939181.450556404&imageDisplay=400%2C300%2C96&returnGeometry=true&maxAllowableOffset=&geometryPrecision=&dynamicLayers=&returnZ=false&returnM=false&gdbVersion=&f=pjson";
        let xhr = new XMLHttpRequest();

        xhr.onload = function () {
            debugger;
            let data = JSON.parse(xhr.responseText);

        }

        xhr.onerror = function (x ) {
            alert("Error while calling Web API");
        }

        let httpVerb = "GET";

        xhr.open(httpVerb, url);

        xhr.setRequestHeader("Content-Type", "application/json");

        xhr.send();
    }

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Удалить эту строку:

 xhr.setRequestHeader("Content-Type", "application/json");

пожалуйста, проверьте эту скрипку для вывода: https://jsfiddle.net/2e9jz6x3/2/

0 голосов
/ 28 июня 2018

Удалить эту строку:

xhr.setRequestHeader("Content-Type", "application/json");

В этом нет необходимости, поскольку в GET запросах нет содержимого (JSON находится в ответе ). И это вызывает ошибку проверки CORS.

Если вы хотите указать, что ожидаете только ответ JSON, используйте:

xhr.setRequestHeader("Accept", "application/json");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...