Задать вопрос
ybiks
@ybiks
Студент

Почему не работает кросс-доменный fetch?

Вопрос заключается в следующем, необходимо отправить данные на другой домен. У меня это реализовано 2-мя Node.js приложениями под разными портами. На 8080(8081 - прокси) порте расположен UI сервер, заточенный под изоморфный React... На 3000 порте расположен API сервер.
fetch('http://localhost:3000', {
	method: 'post',
	headers: {
		'Access-Control-Allow-Origin':'*',
		 'Accept': 'application/json, text/plain, */*',
		'Content-Type': 'application/json'
	},
	mode: 'cors',
	body: JSON.stringify({a: 7, str: 'Some string: &=&'})
})
	.then(res=>res.json())
	.then(res => console.log(res));

Проблема в том что "установленные" заголовки на сервере не видны 59e3c5d996466258918039.png

Если запрос отправить на тот же домен с которого загружена страница то все будет успешно.
fetch('http://localhost:8080', {
	method: 'post',
	headers: {
		'Access-Control-Allow-Origin':'*',
		 'Accept': 'application/json, text/plain, */*',
		'Content-Type': 'application/json'
	},
	mode: 'cors',
	body: JSON.stringify({a: 7, str: 'Some string: &=&'})
})
	.then(res=>res.json())
	.then(res => console.log(res));

Как видно на фото заголовки установлены как надо59e3c7e520a9b993719457.png

Как решить эту проблему? Заранее спасибо!
  • Вопрос задан
  • 863 просмотра
Подписаться 1 Простой 9 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Решения вопроса 1
Access-Control-Allow-Origin надо задавать не на клиенте, а на сервере, на сервере надо указать каким доменам можно делать запрос, т.е. ответ от сервера должен содержать заголовок этот
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽