2011-12-30 9 views
5

Estoy tratando de realizar solicitudes entre dominios con Safari en Windows. La versión de My Safari es 5.1.2.¿Permitir solicitudes entre dominios en Safari y Chrome? Respuesta del servidor frente a los argumentos de la línea de comandos

Esta es una pregunta clásica. He leído en muchos lugares que Chrome y Safari permite que las solicitudes de dominios cruzados, siempre y cuando servidor responde con la cabecera siguientes caracteres en la respuesta

Access-Control-Allow-Origin: * 

He leído este post. How to allow cross-domain requests in Safari? y muchos otros en el sitio de stackoverflow también.

Sin embargo, ninguno de ellos responde mi pregunta.

Tengo problemas con Chrome y Safari realizando solicitudes AJAX entre dominios a pesar de que estoy enviando el encabezado necesario desde el servidor.

Finalmente ejecuté Chrome con "--disable-web-security". Entonces funcionó.

Mis preguntas:

1) ¿Qué hago con Safari? ¿Utilizo un argumento de línea de comando similar?

2) Más importante aún, puede que alguien por favor dígame si la funcionalidad de dominios cruzados está permitido en Chrome y Safari por defecto, siempre y cuando el servidor responde con el encabezado o tengo que asegurarse de que

a) servidor responde con un encabezado

Y

b) del navegador se inicia con un argumento adecuado.

+0

Hay muchos detalles para hacer que las solicitudes entre dominios funcionen correctamente. Todo depende del tipo de solicitud que intenta realizar. ¿Puedes dar más detalles sobre tu solicitud? Puede obtener más información sobre cómo realizar solicitudes CORS aquí: http://www.html5rocks.com/en/tutorials/cors/ – monsur

Respuesta

4

Encontré el problema. Leyendo más acerca de CORS ayudó html5rocks.com/en/tutorials/cors. Me di cuenta de que mis solicitudes estaban activando solicitudes de verificación previa (OPCIONES) y que el servidor no estaba configurado para manejar estas solicitudes correctamente. La razón por la que causaba las solicitudes de verificación previa era porque estaba usando JQuery y estaba agregando un encabezado personalizado en mis solicitudes. Modifiqué mi código para evitar la adición de este encabezado adicional y mis solicitudes ya no necesitaban solicitudes de verificación previa. Ahora no tengo que deshabilitar la seguridad web y funciona bien.

+2

¿Puede decir exactamente cómo modificó su código? ¿Cuál era el encabezado extra? Es posible que tenga este mismo problema. – T3db0t

+0

Consulte el enlace de documentación de cors arriba. Verificar cuando las solicitudes de verificación previa no son necesarias. Verifique su comunicación http a través de firefug o una herramienta de navegador similar y examine toda la sección de encabezados de sus solicitudes http. – CEGRD

+2

Aparentemente no es un encabezado personalizado (X- *) sino el encabezado de solicitud de tipo de contenido: "Si establece este valor en cualquier otra cosa que no sea application/x-www-form-urlencoded, multipart/form-data, o text/plain usted activará una solicitud de verificación previa ". ¿Puedo decir que todo esto parece tonto? ¿Dónde está la justificación de esta locura? – Marc

Cuestiones relacionadas