origin headers enable control chrome allow request cors options preflight

request - headers - ¿Cómo evitar la solicitud de OPCIONES de Preflight con paquete de solicitud de nodo para CORS?



cors permissions (2)

La solicitud de OPTIMACIÓN previa es una parte requerida del flujo de CORS. No hay manera de evitarlo. Sin embargo, el cliente puede almacenar en caché la respuesta de verificación previa, por lo que solo necesita realizar la solicitud de verificación previa una vez en lugar de cada vez que se envía.

Para habilitar el almacenamiento en caché de solicitud de verificación previa, la solicitud de verificación previa debe responder con el encabezado Access-Control-Max-Age . El valor de este encabezado es la cantidad de segundos que el cliente puede almacenar en caché la respuesta.

Por ejemplo, el siguiente encabezado de respuesta permitirá que el cliente guarde en caché la respuesta de verificación previa durante 5 minutos.

Access-Control-Max-Age: 300

Deberá elegir un valor que sea apropiado para su aplicación. Por lo general, es una buena idea establecer este valor en algo que no sea demasiado grande en caso de que necesite cambiar la respuesta de verificación previa en el futuro. Si permite que la solicitud de verificación previa se guarde en caché durante un mes, es posible que los usuarios no obtengan los cambios hasta que su caché caduque un mes después.

Simplemente deseo publicar algo de json, pero por defecto la solicitud realiza una solicitud de OPCIONES de verificación previa.

Me gustaría evitar esto ya que los usuarios a menudo tienen conexiones no confiables, una solicitud adicional reduce aún más la confiabilidad y los resultados en mensajes de error crípticos como ''CORS rechazado''.

var request = require(''request''); function (data, cb) { if (!cb) cb = function () {}; request({ method: "POST", url: "someurl", json:true, body: data }, function (err, response, body) { if (err) cb(err); else if (response.statusCode != 200) { cb(new Error("log satus code: " + response.statusCode)); } else { cb(null, body); } })

Para aclarar, estoy haciendo un CORS real y deseo evitar la solicitud de OPCIONES de verificación previa. También tengo control sobre el saque (aunque eso no debería importar).


Las solicitudes simples no necesitan una solicitud de verificación previa. Supongo que el json: true establece un encabezado de Content-Type personalizado (la mayoría de las application/json ).

Los valores simples para Content-Type son:

  • application/x-www-form-urlencoded
  • multipart/form-data
  • text/plain

Cualquier cosa que esté fuera de esos valores activará una solicitud de verificación previa.