2010-02-04 25 views
6

Tengo este script de sondeo para comprobar si se ha creado un archivo de texto en el servidor. Funciona muy bien localmente, pero falla cuando el archivo está en un dominio diferente. ¿Cómo reescribiría esto para el soporte de dominios cruzados?Cuestión de permiso y llamada de dominio cruzado JQuery ajax

$.ajax({ 
    url: 'http://blah.mydomain.com/test.txt', 
    type: "GET", 
    success: function(result) { 
     //Success! 
     window.location.replace(Successful.aspx'); 
    }, 
    error: function(request, status, error) { 
     setTimeout("VerifyStatus(" + pollingInterval + ")"); 
    } 
    }); 

EDIT: Terminé usando YQL para resolver el problema de dominios y aunque funciona, YQL es muy lento eso es la adición de un poco de sobrecarga de rendimiento. ¿Alguien puede sugerir una mejor solución para llamadas de dominio cruzado JQuery?

Respuesta

7

Establecer el tipo de datos a "JSONP" en su llamada $.ajax(). Deberá asegurarse de que la respuesta tenga el formato adecuado para que funcione. Wikipedia tiene una buena sección en JSONP.

+0

Esto es bueno si tienes control sobre el contenido del archivo de destino. – Bruce

+0

Tengo control sobre la creación del archivo txt. Con jsonp, ¿tengo que escribir una cadena JSON en el archivo de texto? Estoy usando ASP.NET y tengo problemas para poner todo junto – Nick

+0

@ user102533 Correcto. Puede visitar json.org para obtener una lista de los serializadores ASP.NET JSON. –

4

Ajax no usa el dominio cruzado. Su mejor opción es crear una página php en el dominio local que realiza el control, y vaya a -hat- con su llamada ajax.

+0

Esto es bueno si usted no tiene control sobre el contenido del archivo de destino. – Bruce

+0

Tengo control sobre el archivo de texto (es creado por un servicio) – Nick

+0

La respuesta está desactualizada. Hay dos formas directas de hacer Ajax entre dominios, y formas indirectas. ** 1. ** [JSONP] (http://en.wikipedia.org/wiki/JSONP), utiliza la inyección de etiqueta '

Cuestiones relacionadas