Запрос работает с Почтальоном, но сгенерированный фрагмент не работает - PullRequest
0 голосов
/ 24 мая 2018

Итак, я пытаюсь отправить GET-запрос в моем JavaScript через AJAX.Проблема в том, что я могу отправить запрос в Почтальон, и он отлично работает.Когда я использую эту функцию для генерации кода AJAX и вставляю его в локальный файл index.html, запрос кажется заблокированным.

var settings = {
    "async": true,
    "crossDomain": true,
    "url": "http://www.bibsonomy.org/api/posts?resourcetype=bookmark&group=ukp&format=json",
    "method": "GET",
    "headers": {
        "Authorization": "Basic key",
        "Cache-Control": "no-cache"
    }
}

$.ajax(settings).done(function (response) {
    console.log(response);
});

Вывод на консоль:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource
 at https://www.bibsonomy.org/api/posts?resourcetype=bookmark&group=ukp&format=json. 
(Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

Iпонятия не имею, почему он не работает и почему почтальон не получает эту ошибку.

Ответы [ 3 ]

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

Вы должны попытаться добавить это в свои настройки

xhrFields: {
   withCredentials: true
},
crossDomain: true
0 голосов
/ 24 мая 2018

Это должно быть обработано со стороны сервера.Только если сервер добавляет заголовок, разрешающий запросы от localhost:port (если вы в разработке), или вы можете добавить

set Access-Control-Allow-Origin: "*" для приема запросов от всех клиентов, браузер сможетуспешно завершите запрос.

Проверка перекрестного источника - это защита браузера от междоменных атак.Браузер отправляет предварительный запрос (OPTIONS) на сервер, чтобы убедиться, что запрос будет действительным, и при успешном возврате будет отправлен только действительный запрос.Таким образом, надежный способ исправить это - это исправить в провайдере API (сервере) прием запросов от вашего домена / локального хоста.

Однако вы можете обойти только для своего браузера, вы можете проверить это ответ за такой метод.

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

Пожалуйста, добавьте Access-Control-Allow-Origin: * в заголовок запроса.

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