Ошибка получения заголовка запроса - AJAX / JavaScript - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть простой скрипт, пытающийся получить доступ к общедоступным данным, предоставленным USGS в качестве конечной точки JSON.Прямо сейчас скрипт возвращает HTTP-код состояния 0: «неопределенный», который, как я понимаю, является общим кодом состояния, который может многое значить.Сокращенный код, который я пытался протестировать:

<script type="text/javascript">
$('#query').click(function() {
    var jqxhr = $.ajax({
        url: 'https://waterservices.usgs.gov/nwis/iv/?format=json&sites=08170500&parameterCd=00060',
        type: 'get',
        dataType: 'json',
        beforeSend: function(xhr) {
            xhr.setRequestHeader('Content-Type', 'application/json');            
            xhr.setRequestHeader('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
            xhr.setRequestHeader('Accept-Encoding', 'gzip, deflate, br');
            xhr.setRequestHeader('Accept-Language' , 'en-US,en;q=0.5');
            xhr.setRequestHeader('Connection' , 'keep-alive');
            xhr.setRequestHeader('Host' , 'waterservices.usgs.gov');
            xhr.setRequestHeader('Upgrade-Insecure-Requests' , '1');
            xhr.setRequestHeader('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36');
        }
    })
    .done(function () {
        alert( "success");
    })
    .fail(function(jqXHR, textStatus, errorThrown) {
        alert("failure");
        $('#sitedesc').text(jqXHR.status + ' - ' + jqXHR.responseText);
    })
    .always(function() {
        alert("complete");
    });
});
</script>

Я выяснил, что функция beforeSend, похоже, вызывает проблему, из-за чего я думаю, что это проблема CORS.Но в документации службы водоснабжения USGS прямо говорится, что служба поддерживает CORS (https://waterservices.usgs.gov/rest/IV-Service.html#CORS).

. Удаление заголовков запроса также не вариант, так как это возвращает запрещенный код состояния 403, которыйпричина, по которой сотрудники USGS предложили мне в первую очередь предоставить заголовки.

У кого-нибудь есть понимание? Спасибо!

Отказ от ответственности: Я не инженер-программист, и JavaScript не мойфорте:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...