¿Por qué jQuery.ajax() arroja un error sin mensaje de error si utiliza una URL con un servidor dfferent?jQuery.ajax falla cuando la URL proviene de un servidor diferente
Respuesta
Su debido a la restricción en las solicitudes de dominios cruzados implementadas en el navegador para XMLHttpRequests. Puede evitar esto utilizando JSONP como formato, de lo contrario necesitará un proxy del lado del servidor para la solicitud.
Citando del ajax documentation en http://jquery.com
Nota: Todas las solicitudes remotas (no en el mismo dominio) deben especificarse como GET al 'guión' o 'jsonp' es el tipo de datos (porque carga el script usando una etiqueta de script DOM). Las opciones de Ajax que requieren un objeto XMLHttpRequest no están disponibles para estas solicitudes. Las funciones completas y de éxito son llamadas al finalizar, pero no reciben un objeto XHR; las funciones beforeSend y dataFilter no son llamadas a .
Creo que usted encontrará útil esta información:
http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html
El método ajax() internamente utiliza XmlHttpRequest que obedece a la misma política de dominio http://en.wikipedia.org/wiki/Same_origin_policy. El método getJson() se puede utilizar en su lugar para realizar llamadas de dominio cruzado.
espero que esto ayude, Bogdan
Porque si la política del mismo origen jQuery no permitirá esto. La mejor opción será usar alguna página de servidor proxy para obtener las páginas requeridas.
Como http://en.wikipedia.org/wiki/Cross-origin_resource_sharing dice:
uso compartido de recursos de origen cruzado (CORS) es un mecanismo que permite que una página Web para hacer XMLHttpRequests a otro dominio. 1 Tales peticiones de "dominio cruzado" estarían prohibidas por los navegadores web, de acuerdo con la misma política de seguridad de origen. CORS define una forma en que el navegador y el servidor pueden interactuar para determinar si se permite o no la solicitud de origen cruzado. 2 Es más poderoso que solo permitir solicitudes del mismo origen, pero es más seguro que simplemente permitir todas las solicitudes de origen cruzado.
Para PHP que se realiza mediante la función header():
<?php
header("Access-Control-Allow-Origin: http://example.com");
?>
CORS se puede utilizar como una alternativa moderna al patrón JSONP. Mientras que JSONP admite solo el método de solicitud GET, CORS también admite otros tipos de solicitudes HTTP . El uso de CORS permite que un programador web use XMLHttpRequest regular, que admite un mejor manejo de errores que JSONP. Por otro lado, JSONP funciona en navegadores heredados que impiden el soporte de CORS.CORS es compatible con la mayoría de los navegadores web modernos. Además, aunque JSONP puede causar problemas XSS donde el sitio externo es comprometido, CORS permite que los sitios web analicen manualmente las respuestas a para garantizar la seguridad.
JSONP o "JSON con relleno" es una técnica de comunicación utilizada en JavaScript. Proporciona un método para solicitar datos de un servidor en un dominio diferente , algo prohibido por los navegadores web típicos porque de la misma política de origen.
no Este plugin jQuery le hará un request.It básica origen cruz se AJAX.But funciona muy similar como AJAX
- 1. ¿Por qué jQuery.ajax() agrega un parámetro a la url?
- 2. La llamada a jQuery.ajax falla dentro de la extensión de Chrome
- 3. ¿Por qué falla una instrucción switch en una cadena cuando el valor proviene de ViewBag?
- 4. jQuery.ajax() llamadas de éxito/error cuando?
- 5. ¿Cómo verificar de qué URL proviene su NSURLConnection?
- 6. Instalación de postgres gema cuando la base de datos está en un servidor diferente
- 7. Directorio de sub a un servidor diferente
- 8. pasando datos en una matriz de JavaScript al servidor con la función de publicación jQuery.ajax?
- 9. JQuery.AJAX: ¿puede mi servidor devolver una cantidad de datos?
- 10. Jquery setInterval demasiado rápido cuando proviene de otra pestaña
- 11. tipos de contenido diferente AFNetworking AFHTTPClient de éxito y falla
- 12. ¿Cómo saber de dónde proviene la alerta?
- 13. jquery.ajax recuperación de datos múltiples
- 14. Cuando un objeto RAII falla al construir
- 15. jQuery.ajax devuelve jsonp en lugar de JSON
- 16. Wicket AbstractAjaxBehavior con jQuery.ajax()
- 17. JSON y jQuery.ajax
- 18. rizo www.google.com funciona de manera diferente cuando la URL se llama desde el navegador directamente
- 19. Nombre de acción diferente de url
- 20. Diseñe mensajes personalizados cuando la validación falla
- 21. ¿Cómo imprimir más cuando falla la aserción?
- 22. ¿Cómo saber si una solicitud proviene de un proxy?
- 23. Cómo desencadenar la devolución de llamada de error jquery.ajax() en función de la respuesta del servidor, no HTTP 500?
- 24. La inserción de identidad en el servidor vinculado falla
- 25. Servidor no puede analizar un json válido
- 26. PHP: ¿cómo determinar mejor si la invocación actual proviene de CLI o servidor web?
- 27. iOS ¿Patrón de diseño equivalente cuando proviene de un mundo C#/Java?
- 28. Cómo detectar una carga de scripts de un archivo: // ¿La URL falla en Firefox?
- 29. La interfaz .net al servidor COM falla con 0x80080005
- 30. SharePoint guión falla cuando se ejecuta como un comando posterior a la implementación de Visual Studio
Si el acceso está disponible para el procesamiento del lado del servidor, entonces ¿por qué incluso jQuery Es necesario tratar con la llamada a otro dominio, simplemente se manejará en el código del lado del servidor y se pasará a la página. – stephenbayer