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

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

XMLHttpRequest не может загрузить https://myserver.com/context/
Ответ на предполетный запрос не проходит проверку контроля доступа:
В запрошенном ресурсе отсутствует заголовок "Access-Control-Allow-Origin".
Происхождение " 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 ответ

Решение

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

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

Другие вопросы по тегам