Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с html кодом авторизации

ArtemonCat Ученик (98), открыт 3 часа назад
HTML код."
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Gody</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="background">
<div class="login-container">
<h2>Login</h2>
<div class="input-group">
<label for="username">Login:</label>
<input type="text" id="username" placeholder="Enter login">
</div>
<div class="input-group">
<label for="password">Password:</label>
<input type="password" id="password" placeholder="Enter password">
</div>
<button class="login-button" onclick="login()">Done!</button>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
"
script.js
"
import credentials from './data/credentials.js';

function login() {
const usernameInput = document.getElementById('username').value;
const passwordInput = document.getElementById('password').value;

// Декодируем зашифрованные логин и пароль
const correctUsername = atob(credentials.username); // Декодирование из Base64
const correctPassword = atob(credentials.password); // Декодирование из Base64

if (usernameInput === correctUsername && passwordInput === correctPassword) {
// Перенаправление на страницу описания бургера
window.location.href = "burger.html";
} else {
alert("Неверный логин или пароль. Пожалуйста, попробуйте снова.");
}
}
"
credentials.js"
const credentials = {
username: "YXJ0ZW0=",
password: "YXJ0ZW1vbg=="
};

export default credentials;
"
В чём проблема?
7 ответов
SolohaRec viopl Ученик (74) 2 часа назад
Через валидатор html от W3C или через плагин developer проверь
Павел Волгин Просветленный (32763) 2 часа назад
Выложи на сайтах, проверяющих валидность кода.
ArtemonCatУченик (98) 2 часа назад
в коде пути указанны в них ошибку показывает
Павел Волгин Просветленный (32763) ArtemonCat, Правь...
S.H.I. Оракул (68201) 1 час назад
Надо изменить тег <script> в вашем HTML-файле, добавив атрибут type="module":
 <!DOCTYPE html>  
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Gody</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="background">
<div class="login-container">
<h2>Login</h2>
<div class="input-group">
<label for="username">Login:</label>
<input type="text" id="username" placeholder="Enter login">
</div>
<div class="input-group">
<label for="password">Password:</label>
<input type="password" id="password" placeholder="Enter password">
</div>
<button class="login-button" onclick="login()">Done!</button>
</div>
</div>
<script src="script.js" type="module"></script>
</body>
</html>
Это скажет браузеру, что script.js является модулем, и он сможет импортировать из других модулей.
ArtemonCatУченик (98) 49 минут назад
не помогло
ArtemonCatУченик (98) 47 минут назад
это выдаёт в консоль Access to script at 'C:/Users/%D0%90%D1%80%D1%82%D1%91%D0%BC/Desktop/login/script.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome-untrusted, https, edge.
script.js:1









Failed to load resource: net::ERR_FAILED
29index.html:21

Uncaught ReferenceError: login is not defined
at HTMLButtonElement.onclick (index.html:21:60)
ДХ Ученик (174) 1 час назад
Я люблю дристать
Эксперт Мастер (2269) 16 минут назад
В вашем script.js файле используется конструкция ES-модулей (import credentials from './data/credentials.js';), которая по умолчанию не поддерживается обычными скриптами без дополнительных настроек. Для того, чтобы браузер понял, что ваш JavaScript-файл является модулем и может использовать import, необходимо в HTML при подключении script.js указать атрибут type="module".

Ваш HTML-код сейчас выглядит примерно так:
 <script src="script.js"></script> 
Чтобы импорт работал, нужно изменить это на:
 <script type="module" src="script.js"></script> 
После этого импорт из credentials.js будет работать корректно, при условии, что файлы находятся в нужных путях и сервер настроен правильно. Если вы открываете файл просто двойным кликом из файловой системы (без веб-сервера), стоит учесть, что некоторые браузеры блокируют импорт по file:// протоколу. В таком случае нужно запустить локальный сервер (например, через npx http-server или подобный инструмент) или настроить свой сервер.
Похожие вопросы