Задать вопрос
zzzfairy
@zzzfairy
Учусь на front-end разработчика

Как загрузить в локальное хранилище и получить обратно?

Консоль выдаёт ошибку на request.send(json): " Access to XMLHttpRequest at 'file:.../server.php' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https."

Я пыталась загрузить в локальное хранилище и получить обратно, но тоже не получается. Идей у меня нет. Подскажите, как обойти ошибку.

let message = {
            loading: "Загрузка...",
            success: "Спасибо! Скоро мы с вами свяжемся!",
            failure: "Что-то пошло не так..."
        };
         let form = document.querySelector(".main-form"),
            inputForm = form.getElementsByTagName("input"),
            statusMessage = document.createElement("div");
            statusMessage.classList.add("status");

         form.addEventListener("submit", function(evt) {
           evt.preventDefault();
           form.appendChild(statusMessage);
           let request = new XMLHttpRequest();

        //    localStorage.setItem("php", "server.php");
        //    let phpP = localStorage.getItem("php");

               request.open("POST", "server.php");
               request.setRequestHeader("Content-type", "application/json; charset=utf-8");

               let formData = new FormData(form);

               let obj = {};
               formData.forEach(function(value, key){
                    obj[key] = value;
               });


                //  let json = JSON.stringify(obj);
                //  request.send(json);


               request.addEventListener("readystatechange", function(){
                   if (request.readyState < 4) {
                       statusMessage.innerHTML = message.loading;
                   } else if (request.readyState === 4 && request.status == 200) {
                       statusMessage.innerHTML = message.success;
                   } else {
                       statusMessage.innerHTML = message.failure;
                   }
               });

               for (let i = 0; i < input.length; i++) {
                   input[i].value = "";
               }

               localStorage.setItem("key", "myValue");
               let localValue = localStorage.getItem("key");
               

               let json = JSON.stringify(obj);
               request.send(json);
       });


Выводит сообщение в форме : "Что-то пошло не так".
  • Вопрос задан
  • 155 просмотров
Подписаться 1 Простой 7 комментариев
Решения вопроса 2
Stalker_RED
@Stalker_RED
Access to XMLHttpRequest ... from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes ...
(переводить не буду)

Идей у меня нет.
Знаний языка у тебя нет. И учебника нет. И гугла у тебя нет. И википедии у тебя нет :)
Ответ написан
@Barring
Первый ответ в гугле.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы