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
GuardiaDado 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 defectorequest
: 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 conRequest.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 derequest
. De manera similar, la inserción deSet-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);
}