Javascript: как использовать «глобальную переменную» для двух разных html-страниц?

Я использую 2 разных html, и оба используют один и тот же файл Javascript.

Файл Javascript делает это

var problem;

function login() {
    const login = document.getElementById('login');

    const nome = document.getElementById('lnome');
    const pass = document.getElementById('lpass');

    const item = {
        Username: nome.value.trim(),
        Password: pass.value.trim()
    };
  fetch(uri, {
    method: 'POST',
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(item)
  })
    .then(response => response.json())
    .then((res) => {
      problem = res; //HERE need to put into the 'problem' the value of the res
      window.location.href = url_1; // This calls index_2.html
    })
    .catch(error => console.error('Unable to Login.', error));
}

Приведенный выше код используется в index_1.html.


$(function () {
    var $users_A = $('#users_A');
        $.ajax({
            url: uri_1,
            type: 'GET',
            dataType: 'json',
            beforeSend: function (request) {
                request.setRequestHeader("Authorization", 'Bearer ' + problem);
            },
            success: function (data) {
                $users_A.append('<h4>PROBLEM RESOLVED</h4>');
            },
            error: function (xhr, textStatus, errorThrown) {
                console.info('Error in Operation');
                $users_A.append('<h4>DON'T WORK</h4>');
            }
        });
    });

Приведенный выше код используется в index_2.html.

Когда я запускаю программу, проблема с переменной не содержит информации в «res», поэтому она становится неопределенной, как мне решить эту проблему?

Любой ответ приветствуется

Вы спрашиваете, как сохранить данные при загрузке двух отдельных страниц в JavaScript? По сути, вам нужно место для сохранения этих данных. Если вы хотите сохранить его в браузере, localStorage или файл cookie являются разумными подходами. Если вы хотите сохранить его на сервере, вы можете сделать запрос AJAX на сервер, чтобы сохранить эти данные.

David 16.05.2022 17:53

Что-то вроде этого, в функции выборки дайте «толчок» переменной «проблема», а в ajax получите «вытягивание» переменной «проблема»

José Carlos 16.05.2022 18:11
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
32
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Глобальная переменная является глобальной только для текущей загруженной страницы, которая ее использует. Он не является глобальным для всех страниц, которые могут повторно использовать один и тот же код. Если вам нужно, чтобы данные были доступны для всех страниц для одного пользователя, сохраните данные в localStorage. Если вам нужно, чтобы данные были доступны всем пользователям на всех страницах, вам нужно хранить данные на сервере.

Это один пользователь, но моя проблема заключается в использовании переменных, поэтому в этом случае мне нужно сделать что-то вроде [ localStorage.setItem(problem, res); ] в функции выборки, поэтому, когда я вызываю метод ajax, о котором я сказал в index2.html, проблема с переменной получает разрешение, верно???

José Carlos 16.05.2022 18:14

@ХосеКарлос Да. На одной странице вы можете установить значение localStorage, а затем выбрать это значение (или даже изменить его) на любой другой странице.

Scott Marcus 16.05.2022 18:21

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