2010-04-05 6 views
5

Itunes se basa en la plataforma Webkit y no podemos usar XmlHttpRequest entre sitios en JavaScript debido a la política de seguridad. Pero, como excepción, podemos hacer eso con un encabezado especial. Aquí está el código fuente y lo hice con éxito en Safari:¿Puedo usar XmlHttpRequest entre sitios en el entorno LP de Itunes?

var url = 'http://mysite.net/canvas.php'; 

var mybody = "<?xml version='1.0' charset='utf-8'?><person><name>Arun</name></person>"; 
var http = new XMLHttpRequest(); 

http.open("POST", url, true); 
http.setRequestHeader("X-PINGOTHER", "pingpong"); 
http.setRequestHeader('Content-Type', 'application/xml'); 

http.setRequestHeader("Content-length", mybody.length); 
http.setRequestHeader("Connection", "close"); 
http.send(mybody); 

envié datos XML a mi servidor y obtener respuesta de regreso con éxito en el navegador Safari, pero no puedo hacerlo en el entorno de iTunes LP. Entonces, ¿cuál es el problema?

+0

Haber examinado el Intercambio de recursos de origen cruzado (CORS), consulte [http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing] && Referencia MDC [https: //developer.mozilla .org/En/HTTP_access_control] – Ajaxe

Respuesta

0

No sé qué entorno LP de iTunes es, pero normalmente, si necesita hacer scripts de cross-site, usaría JSONP. Mira eso. Estoy seguro de que puedes encontrar muchos ejemplos.

0

JSONP es una buena opción, pero para hacerlo, debe crear el servicio para proporcionar la característica de JSONP. Pero, usted no puede ser el dueño de eso.

Puede ir con el proxy para enviar el XmlHttpRequest, que puede usar Flash como proxy. Puede encontrar un mejor ejemplo here

Cuestiones relacionadas