2010-03-06 5 views
6

Ho pensato per un po 'se c'è un modo per far funzionare AJAX (usando XML, non JSON) tra domini diversi. Chiunque può vedere alcuna ragione per cui quanto segue non avrebbe funzionato:AJAX interdominio: questo metodo funziona?

  1. Crea un iframe
  2. caricare l'URL della chiamata AJAX nel iframe
  3. Usa JavaScript per ottenere il contenuto del iframe

(questo non sarà asincrona, ma potrebbe utilizzare setTimeout(functionToLoadTheIframe, 1) consentono di ottenere asincronicità?)

risposta

5

Sì è possibile utilizzare gli iframe per il cross AJAX dominio. Diventa un po 'complicato (anche di più se vuoi usare XML), ma è possibile. Ecco un buon articolo che descrive diversi tipi di hack che vengono utilizzati. Penso che uno sia abbastanza simile a quello che stai descrivendo. Ancora più importante, descrive le regole della comunicazione iframe in iframe che probabilmente aiuterà di più.

http://softwareas.com/cross-domain-communication-with-iframes

+0

Link davvero utile - evviva – wheresrhys

2

questo non avrebbe funzionato a causa di stesse restrizioni di sicurezza del dominio. Nella maggior parte dei casi non è possibile interagire con frame con un dominio diverso. In caso contrario, un sito dannoso potrebbe caricare la tua casella di posta elettronica, ad esempio.

3

iframe in cui viene utilizzato per consentire chiamate remote e "simulare" ajax come lo conosciamo oggi, e la risposta è SI ... è possibile utilizzare gli iframe ma è necessario scrivere a volte script lato client complessi utilizzando javaScript.

Hai mai considerato l'utilizzo di uno script/applicazione lato server sul tuo dominio come proxy per la risorsa remota?

Cioè, invia le tue richieste al tuo script/applicazione sul tuo dominio che a sua volta recupererà dati/informazioni dall'host remoto.

saluti,

+0

Sto utilizzando uno script lato server in questo momento e che sta funzionando bene, quindi la mia domanda è in parte per il valore curiosità, ma in parte per vedere se c'è una soluzione in futuro se voglio usare un XML webservice in una semplice pagina html utilizzando javascript ma senza script sul lato server. – wheresrhys

+0

è fattibile con iframe con restrizioni .. quindi dovresti esaminarlo prima di implementarlo. saluti. – Andreas