Member 14938012 Ответов: 1

Как я разблокирую свой запрос cross-origin заблокирован из-за запроса CORS, а не http


когда я выполняю свой код и пытаюсь получить данные с сервера через ajax он выдает мне эту ошибку

Access to XMLHttpRequest at 'file:///C:/Users/Dubai%20Computers/Music/web%20designing%20and%20development/ajax/lecture%201/data.text' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https.
data.text:1 Failed to load resource: net::ERR_FAILED


Мой код javascript выглядит следующим образом

let textbutton = document.querySelector('#text-btn');

textbutton.addEventListener('click', function () {

    //create ajax request
    let xhr = new XMLHttpRequest();
    //prefare request
    xhr.open('GET', './data.text', true);
    //send request
    add(xhr);
    function add(request) {
        request.setRequestHeader("Access-Control-Allow-Origin", "*"); request.setRequestHeader("Access-Control-Allow-Headers", "Content-Type");
    }
    xhr.send();
    //process request
    xhr.onload = () => {
        if (xhr.status == 200) {
            let data = xhr.responseText;
            console.log(data);
        }
    };

});


Что я уже пробовал:

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

1 Ответов

Рейтинг:
2

Richard Deeming

Вы загружаете HTML-файл непосредственно с диска. Когда вы это сделаете, у вас будет много ограничений, включая тот факт, что вы не можете делать никаких AJAX-запросов для загрузки других файлов с диска.

Вам нужно загрузить свою страницу с правильного веб-сервера. В Windows можно использовать либо IIS, либо IIS Express.
Установка и настройка веб-сайта в IIS на Windows 10[^]

В этом случае вы не делаете запрос перекрестного источника; вы просто загружаете данные из того же источника, что и страница. Но если бы это было так, вам нужно было бы понять, как работают заголовки CORS: они должны быть отправлены с помощью удаленного сервера как часть ответа. Вы не можете установить их как часть запроса, так как это обойдет их основное назначение.
Совместное использование ресурсов между источниками (CORS) - HTTP | MDN[^]