react node example node.js request-headers fetch-api nodeapi isomorphic-fetch-api

node.js - node - Cómo configurar el tipo de contenido del encabezado de solicitud cuando se utiliza Fetch APi



node js fetch (2)

Estoy usando npm ''isomorphic-fetch'' para enviar solicitudes. El problema que estoy experimentando es que no puedo establecer el tipo de contenido del encabezado de la solicitud.

Establecí un tipo de contenido de application / json, sin embargo, el encabezado de la solicitud se está configurando en texto / plano.

import ''isomorphic-fetch''; sendRequest(url, method, body) { const options = { method: method, headers:{''content-type'': ''application/json''}, mode: ''no-cors'' }; options.body = JSON.stringify(body); return fetch(url, options); }

Cuando examino la solicitud en mi navegador, el tipo de contenido es o:

content-type:text/plain;charset=UTF-8

¿Alguien puede explicar por qué no puedo establecer esta propiedad?


Encontré la respuesta después de leer el siguiente artículo:

https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#Headers

Guardia

Dado que los encabezados pueden enviarse en solicitudes y recibirse en respuestas, y tienen varias limitaciones sobre qué información puede y debe ser mutable, los objetos de encabezados tienen una propiedad de protección. Esto no está expuesto a la Web, pero afecta a las operaciones de mutación permitidas en el objeto de encabezados.

Los valores de guarda posibles son:

  • none : por defecto
  • request : protección para un objeto de encabezados obtenidos de una solicitud ( Request.headers ).
  • request-no-cors : guarda para un objeto de encabezados obtenido de una solicitud creada con Request.mode no-cors .
  • response : guardia para un encabezado obtenido a partir de una respuesta ( Response.headers ).
  • immutable : se utiliza principalmente para los trabajadores de servicio; hace que un objeto de encabezados sea de solo lectura.

Nota : No puede adjuntar o establecer un encabezado Content-Length encabezados protegidos de request . De manera similar, la inserción de Set-Cookie en un encabezado de respuesta no está permitida: los trabajadores del servicio no pueden configurar cookies a través de respuestas sintetizadas.

Cuando la propiedad de modo de opciones se establece en no-cors, los valores de encabezado de solicitud son inmutables.

En su lugar, establezco la propiedad de modo a cors.


Es necesario crear un objeto de encabezados de búsqueda.

sendRequest(url, method, body) { const options = { method: method, headers: new Headers({''content-type'': ''application/json''}), mode: ''no-cors'' }; options.body = JSON.stringify(body); return fetch(url, options); }