Lo siento si mi Inglés no es perfecto, ya que puedo ver que no era lo suficientemente claro ... Una de mis principales preocupaciones se explica por otra persona aquí: http://http://forum.jquery.com/topic/cross-domain-ajax-and-ie
Entonces, ¿qué alternativa existe?
1) XDomainRequest
personalmente creo que esta es la mejor manera de implementar secuencias de comandos entre sitios en IE8 + (ya que es compatible de forma nativa). El único problema es que es una forma única de Microsoft. Pero como muchas otras cosas con la familia IE, podemos extender fácilmente la funcionalidad JQuery ajax.
De acuerdo con la documentación, deberá especificar algunos encabezados adicionales en domain1.TLD, for example, in PHP así:
header("Access-Control-Allow-Origin: http://domain2.tld"); //use * for any
Tal vez la siguiente alternativa es útil para proporcionar la aplicación de jQuery XDomainRequest;
Update (a): Hay una (no jQuery), que "reemplazar" la clase XHR para que sea multi-navegador XDR library, se basa en pmxdr client library. No lo he intentado todavía
2) CORS
El único problema con este plugin es que no es exactamente una extensión ya que sus funciones se nombran de manera diferente, por lo que necesita ya sea cambiar sus códigos o una envoltura de ese plugin.
Actualización (b): Modifiqué el complemento CORS para que sea más fácil. Verifique mi otra respuesta para obtener el código.
3) JsonP in JQuery
Esta debe ser la forma más fácil de resolver mi problema (ya que tengo el control de ambos servidores). Nativamente, la mayoría de los navegadores admiten scripts de sitios cruzados, solo si se utiliza el formato json (creo que también se puede usar xml). En este caso, se usa la función $ .getJSON(). Para que funcione, debe especificar (como lo indica la documentación) callback =? en la URL, por ejemplo:
$.getJSON("http://domain2.tld/index.php?callback=?",funciton(res){ ... });
¿El "?" después de "devolución de llamada" será reemplazado con un identificador ... en su archivo PHP, es necesario conseguir que el identificador y rodear el código JSON como esto:
print_r($_GET["callback"])."(".json_encode($mydata).");";
(Tengo ese ejemplo de here)
El problema con este método es que si solo desea recuperar HTML, debe residir dentro de un objeto json y hacer que el proceso sea un poco más complicado y abrumador.
4) jquery.jsonp plugin
Si necesita validaciones y características adicionales para el apoyo JSONP nativo en jQuery, y luego tratar este plugin que también simplificará el proceso.
5) xdomainajax
Este plugin utiliza un abordaje interesante utilizando el servicio de Yahoo YQL, en el que cualquier página web (o una parte de ella) se pueden convertir en JSON, por lo que es posible importar en Javascript. Este método es bueno para aquellas situaciones en las que no puede cambiar el formato de origen.
6) flXHR
Esta solución utiliza flash (SWF) para lograr la magia. Podría decir que esta es una manera muy rápida de lograr una implementación casi totalmente de navegador (ya que se basa en el soporte de flash). Este método puede ser ideal para aquellos sitios en los que flash estará presente (seguro). Sin embargo, si su sitio no requiere flash, esa será la principal desventaja ya que los usuarios deberían tener instalado flash para que funcione.
7) xdajax
Esta solución se basa en la aplicación de YUI junto con el enfoque de "flash".
8) Si ninguna de las opciones anteriores es buena para usted, recuerde que todavía puede usar el viejo truco de insertar una etiqueta para importar el código JS.
9) La reducción de la seguridad de IE al mínimo también resuelve el problema. Pero creo que no sería bueno tener un mensaje como este: "Por favor, baje su configuración de seguridad para usar este sitio" ... lol
Espero que esto pueda ayudar a otros en una situación similar.
¡Gracias por esto! Sin embargo, al usar esto recientemente para un caso marginal, descubrí que rompe ligeramente la funcionalidad nativa de '$ .get' y' $ .post', que cada uno devuelve un objeto jqXHR. Esto se soluciona fácilmente modificando los bloques try en su código para leer 'return $ ._ get (url, data, callback, type);' y 'return $ ._ post (url, data, callback, type);' – itsmequinn