the resource requested present origin domain cross control chrome allow html5 firefox cookies cors

html5 - resource - La verificación previa de CORS withCredentials XHR no publica cookies en Firefox



no ''access-control-allow-origin'' header is present on the requested resource. (2)

Estoy tratando de hacer una publicación CORS XHR con credenciales. Funciona muy bien en Chrome, pero no en Firefox. Las cookies no están presentes en los encabezados de solicitud previa al vuelo, por lo que estoy viendo un 302. Esto funciona perfectamente en Chrome, ya que las cookies están en los encabezados de solicitud previa al vuelo y el POST posterior pasa.

¿Por qué no funcionaría esto en FF? ¿Qué me estoy perdiendo?

// assume url, boundEventHandler and uploadData are defined, as this definitely works in Chrome var xhr = new XMLHttpRequest(); xhr.open("POST", url, true); xhr.addEventListener ("readystatechange", boundEventHandler, false); xhr.withCredentials = true; // FWIW, I''ve also tried the string ''true'' xhr.send(uploadData);

¿Algunas ideas? Veo algunas publicaciones que dicen que puedo presentar la solicitud en el servidor, pero preferiría que esto funcione de acuerdo con la especificación CORS.

¡Gracias!



Según las especificaciones en https://www.w3.org/TR/cors/#resource-preflight-requests la solicitud de verificación previa nunca incluye cookies. Específicamente, la especificación dice:

  • Excluir credenciales de usuario.

y que enlaza a https://www.w3.org/TR/cors/#user-credentials que dice:

El término credenciales de usuario para los fines de esta especificación significa cookies, autenticación HTTP y SSL del lado del cliente (...).

Dicho esto, el fragmento de código que cita anteriormente no debe incluir una verificación previa: no hay escuchas de eventos de carga, el método es un método simple y no hay un conjunto de encabezados de autor. Entonces, si realmente estás viendo una solicitud de verificación previa, la primera pregunta es por qué está sucediendo. ¿Tiene alguna extensión en Firefox que pueda estar afectando su objeto XMLHttpRequest?