Javascript:我如何为 2 个不同的 html 页面使用“'global variable'”?
Javascript: how i use a ''global variable'' for 2 different html pages?
我正在使用 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.log('Error in Operation');
$users_A.append('<h4>DON'T WORK</h4>');
}
});
});
以上代码用于index_2.html
当我运行程序时,变量问题不包含'res'中的信息所以它未定义,我如何解决这个问题?
欢迎任何回答
全局变量仅对当前加载的使用它的页面是全局的。对于可能重用相同代码的所有页面而言,它并不是全局的。如果您需要数据对单个用户的所有页面可用,请将数据存储在 localStorage
中。如果您需要在所有页面上的所有用户之间共享数据,则需要将数据存储在服务器上。
我正在使用 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.log('Error in Operation');
$users_A.append('<h4>DON'T WORK</h4>');
}
});
});
以上代码用于index_2.html
当我运行程序时,变量问题不包含'res'中的信息所以它未定义,我如何解决这个问题?
欢迎任何回答
全局变量仅对当前加载的使用它的页面是全局的。对于可能重用相同代码的所有页面而言,它并不是全局的。如果您需要数据对单个用户的所有页面可用,请将数据存储在 localStorage
中。如果您需要在所有页面上的所有用户之间共享数据,则需要将数据存储在服务器上。