Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource. Ошибка при отправке
Отправляю из firefox данные для логина на сервер, появляеться ошибка
Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource.
Отправляю с Edge и Chrome ошибки нет, но респонс не приходит. Я смотрел подобные темы, но так и не понял в чем суть.
Вот клиентский код:
async function logIn() {
let email = document.getElementById("email").value;
let password = document.getElementById("password").value;
let formData = new FormData();
formData.append('email', email);
formData.append('password', password);
let res = await fetch('http://localhost/server/login', {
method: 'POST',
body: formData
});
let data = await res.json();
if (data.status) {
localStorage.setItem('token', data.token);
window.location.href = "http://localhost/index.html";
} else {
alert("Login failed");
}
}
Вот серверный код: index.php
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: *, Authorization');
header('Access-Control-Allow-Methods: *');
header('Access-Control-Allow-Credentials: true');
header('Content-Type: application/json');
require_once 'connect.php';
require_once 'function.php';
try {
$pdo = new PDO($attr, $userDB, $pass, $opts);
} catch (PDOException $e) {
die('Database connection failed.');
}
$method = $_SERVER['REQUEST_METHOD'];
$q = $_GET['q'];
$params = explode('/', $q);
$type = $params[0];
$id = $params[1];
switch ($type) {
case "signup":
addUser($pdo, $_POST);
break;
case "login":
loginUser($pdo, $_POST);
break;
}
Вот functions.php
<?php
function addUser($pdo, $data) {
$username = $data['username'];
$email = $data['email'];
$password = $data['password'];
$stmt = $pdo->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->execute([$username, $email, password_hash($password, PASSWORD_BCRYPT)]);
http_response_code('201');
$res = [
"status" => "true",
"message" => "User added successfully",
];
echo json_encode($res);
}
function loginUser($pdo, $data) {
$key = 'eFTy2Wq1pXuuUlI0BUNZ';
$email = $data['email'];
$password = $data['password'];
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$email]);
$user = $stmt->fetch();
if(password_verify($password, $user['password'])) {
http_response_code('200');
$res = [
"status" => "true",
"message" => "User logged in successfully",
"user" => [
"id" => $user['id'],
"username" => $user['username'],
"email" => $user['email'],
"token" => base64_encode($key . $user['id']),
],
];
echo json_encode($res);
} else {
http_response_code('401');
}
}
Помогите, пожалуйста.