2010-07-07 18 views
9

¿Existe alguna forma de evitar el uso de un servidor proxy para realizar una solicitud GET o POST de dominio cruzado?Solicitud de obtención de dominio cruzado en JS/JQuery

+8

jsonp - http: // ajaxian.com/archives/jsonp-json-with-padding –

+0

Debería haber aclarado que la respuesta de mi solicitud GET no tiene formato JSON, por lo que no creo que $ .getJSON funcione – Crothers

Respuesta

14

Si son sólo con los navegadores actuales del día y tener control sobre el dominio externo, puede utilizar Cross-Origin Resource Sharing [CORS]

mayoría de las personas no tienen ese lujo así que o bien tiene que utilizar JSON con relleno [ JSONP] o necesita usar un proxy en el servidor.

+2

Excelente respuesta. Más información está disponible en [esta pregunta stack-o] (http://stackoverflow.com/questions/5908195/jquery-and-cross-domain-post-requests); y también, [ver esta publicación del blog] (http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/); Además, [este artículo de mozilla-desarrollador-red] (https://developer.mozilla.org/En/HTTP_access_control) es una lectura excelente, con enlaces a más recursos. [edit]: Tenga en cuenta que para habilitar CORS, la secuencia de comandos del lado del servidor debe responder con encabezados especiales. – David

+0

Eche un vistazo aquí: http://www.html5rocks.com/en/tutorials/cors/ –

1

Por lo que yo sé, no hay forma de realizar una solicitud entre dominios en JS, pero puede consultar su servidor y realizar la solicitud desde allí.

Editar: como Russ Cam dijo anteriormente, mira en JSONP.

-2

AJAX Cross Domain es una biblioteca de bajo costo que permite realizar solicitudes AJAX entre dominios. http://www.ajax-cross-domain.com/

+0

Sería genial si los votantes con menos votos dejaran comentarios para que el público pueda ser educado sobre por qué esta es una mala respuesta. –

+1

Sí, hágamelo saber, ya que he usado esta biblioteca en un par de proyectos y no he tenido ningún problema. – Ivan

+5

Utiliza un servicio de terceros que generalmente no es ideal. –

0

Podría usar Flash. Flash le permite realizar una solicitud entre dominios a otro servidor siempre que sirva un archivo de política de dominio cruzado de Flash (un archivo XML). Por lo tanto, necesitará acceso administrativo al otro servidor para configurarlo.

Si usted piensa que esta opción podría ser lo que está buscando o que quieren hacer SSL/TLS entre dominios, echa un vistazo al proyecto de código abierto Forge:

http://github.com/digitalbazaar/forge/blob/master/README

Cuestiones relacionadas