Cross Dominio AJAX Preflazando la verificación de origen fallido
-
30-10-2019 - |
Pregunta
Esto no parece funcionar:
$.ajax({
url: "http://localhost:3000/foo.json",
data: { foo: 'bar' },
headers: { 'HTTP_X_CUSTOMHEADER': 'foobar' },
xhrFields: { withCredentials: true }
});
Cuando lo ejecuto en jsfiddle, un OPTIONS
Solicitud (según las herramientas de depuración de Chrome) se dispara que se ve así:
Access-Control-Request-Headers: Origin, HTTP_X_CUSTOMHEADER, Accept
Access-Control-Request-Method: GET
Origin: http://fiddle.jshell.net
Y luego (según las herramientas de depuración de Chrome) mi servidor local devuelve los siguientes encabezados:
(reformateado manualmente para la legibilidad)
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: HTTP_X_CUSTOMHEADER
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin: http://fiddle.jshell.net
Access-Control-Max-Age: 10
Cache-Control: no-cache
Connection: Keep-Alive
Content-Length: 1
Content-Type: text/html; charset=utf-8
Date: Wed, 14 Sep 2011 22:42:28 GMT
Server: WEBrick/1.3.1 (Ruby/1.8.7/2010-01-10)
X-Runtime: 2
Y luego en la consola recibo un mensaje de error como este:
XMLHttpRequest cannot load http://localhost:3000/foo.json?foo=bar.
Origin http://fiddle.jshell.net is not allowed by Access-Control-Allow-Origin.
Pero el Access-Control-Allow-Origin
El encabezado parece idéntico a cuando mi servidor respondió a la solicitud previa al vuelo. Entonces, ¿qué pieza me falta aquí de este rompecabezas?
No hay solución correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow