Fetch API — Content-Type отправляется как text/plain, когда для него установлено значение application/json

В моем приложении React, когда я отправляю форму для создания нового пользователя, я создаю запрос на сервер, используя fetch.

Код такой:

fetch('http://0.0.0.0:3000/users', {
  method: 'POST',
  mode: 'no-cors',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(data)
}).then(response => console.log(response))

Когда я проверяю запись на вкладке «Сеть» в инструментах разработчика, я вижу, что Content-Type равен text/plain, но я не понимаю, почему, если я установил его как application/json.

Я попытался использовать параметр Edit and send в запросе и заменить text/plain на application/json, но после его отправки он отправляется как text/plain.


person abaracedo    schedule 11.01.2019    source источник
comment
Если вы установили no-cors из-за ошибок No Access-Control-Allow-Origin header..., это не решение.   -  person Phil    schedule 11.01.2019


Ответы (1)


Виновником является опция mode: "no-cors".

Удалите эту опцию, и она должна работать

Чтобы исправить это, передайте новый объект заголовков

headers: new Headers({'content-type': 'application/json'})
person varoons    schedule 11.01.2019
comment
Я все еще получаю тот же результат - person abaracedo; 11.01.2019
comment
Обновленный ответ. - person varoons; 11.01.2019
comment
Опция headers также принимает обычный объект. Он не обязательно должен быть экземпляром Headers - person Phil; 11.01.2019
comment
no-cors решил мою проблему. Благодарность.. - person mstfyldz; 08.10.2020