не удается решить проблему контроля доступа


Это довольно известная Стандартная ошибка, но ее невозможно исправить с помощью существующих сообщений Stackoverflow.

XMLHttpRequest не может загрузить https://myserver.com/context/
Ответ на предполетный запрос не проходит проверку контроля доступа:
Нет 'контроля доступа-разрешить-происхождение заголовка' присутствует на запрошенный ресурс.
Происхождение 'https://www.otherwebsite.com ' поэтому доступ запрещен.
Ответ имел код состояния HTTP 405.

Ниже приведен код, который у меня есть -

function setHeader(xhr) {
    xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
}

var url = "https://myserver.com/context/";
$.ajax({
    url: url,
    type: 'GET', dataType:'json',
    success: function(data) {
        _this.question(data.question);
        _this.questionId(data.questionId);
        _this.choices(data.choices);
    }, error: function() {
        console.log("ERROR in getting microquestion");
    },
    beforeSend: setHeader
});
1 2

1 ответ:

"Ответ на предполетный запрос... имел код состояния HTTP 405." сообщение указывает, что для запуска конечная точка https://myserver.com/context/ должна быть настроена для правильной обработки запросов OPTIONS-даже если она уже может быть настроена для отправки правильных заголовков CORS для "нормальных" запросов.

Для некоторых деталей вы можете прочитать ответ на заголовок 'Access-Control-Allow-Origin' отсутствует на запрошенном ресурсе-при попытке получить данные из REST API-но суть его такова, как минимум, сервер должен отвечать на запросы OPTIONS кодом состояния успеха 2xx.