Невозможно установить любой заголовок в запросе Fetch Get

Я пытаюсь отправить запрос на получение из браузера на свой бэкэнд (node ​​+ express). Но почему-то мои заголовки не устанавливаются.

Вот интерфейс:

let accessToken = localStorage.getItem('accessToken');

    fetch('http://localhost:3000/checkLogin', {
        method: 'GET',
        mode: same-origin,

        withCredentials: true,
        credentials: 'include',
        headers: {
            'Authorization': 'Bearer ' + accessToken,
            'Content-Type': 'text/plain',
            'X-Test':'test'
        }
    })
    .then(data => {
        console.info('Success:', data);
    })
    .catch((error) => {
        console.error('Error:', error);
    });

В бэкэнде я попытался включить настраиваемые заголовки:

server.use(function(req, res, next) {
console.info("CORS");
res.set('Access-Control-Allow-Origin', 'localhost:3000/testLogin');
res.set('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.set('Access-Control-Allow-Headers', 'Authorization, Content-Type, X-Test');
next();});

Я уже пробовал ответы на подобные вопросы, но ни один из них не помог.

когда я печатаю заголовки, полученные сервером, я получаю:

host: 'localhost:3000',
  connection: 'keep-alive',
  'cache-control': 'max-age=0',
  'sec-ch-ua': '"Google Chrome";v = "89", "Chromium";v = "89", ";Not A Brand";v = "99"',
  'sec-ch-ua-mobile': '?0',
  'upgrade-insecure-requests': '1',
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36',
  accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
  'sec-fetch-site': 'same-origin',
  'sec-fetch-mode': 'navigate',
  'sec-fetch-user': '?1',
  'sec-fetch-dest': 'document',
  referer: 'http://localhost:3000/',
  'accept-encoding': 'gzip, deflate, br',
  'accept-language': 'de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7'

плохо отменить мое редактирование извините

Timm Nicolaizik 05.04.2021 18:12

Вы должны получить указание в браузере, почему ответ не разрешен. Вам также следует изучить возможность использования cors промежуточное ПО, а не кататься самостоятельно.

T.J. Crowder 05.04.2021 18:12

промежуточное ПО cors также не работает

Timm Nicolaizik 05.04.2021 18:25
Поведение ключевого слова "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
3
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Указываемое вами происхождение недействительно. У него должна быть схема (например, http:// или https://). Также обратите внимание, что у истоков нет путей. Так, например, вместо 'localhost:3000/testLogin' это будет 'http://localhost:3000':

res.set('Access-Control-Allow-Origin', 'http://localhost:3000');

все еще не работает

Timm Nicolaizik 05.04.2021 18:09

я ошибся получить с постом. теперь работает :)

Timm Nicolaizik 05.04.2021 18:42

@TimmNicolaizik - Угу! Мы все поступали так. :-) Рад, что вы все поняли!

T.J. Crowder 05.04.2021 18:51

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