2010-11-05 6 views
8

Y at-il un moyen de faire une requête Ajax àAjax demandes de sous-domaine?

s3-ap-southeast-1.s3.amazonaws.com (API S3)

de

s3.amazonaws.com

(d'où une application JavaScript hébergée à)?

Répondre

3

Vous ne pouvez pas effectuer de requêtes ajax interdomaines. Cela inclut les sous-domaines. Cependant, il est possible d'utiliser JSONP.

+2

JSONP fonctionne uniquement avec les requêtes GET –

0

Je suppose que je trouve le lien qui @Patrick avait affiché et il était devenu cassé

http://hoppeweb.blogspot.com/2008/03/cross-sub-domain-javascript-ajax-iframe.html

pour éviter ce qui se passe à nouveau je vais juste essayer de re-post it)

L'idée est de mettre en place un html iframe sur un domaine, puis d'appeler cette iframe à partir de la page sur l'autre sous-domaine. La page parent et l'iframe à l'intérieur doivent avoir le même document.domain.

document.domain = "example.com" 

Une fois cela fait, ces deux pages agissent comme si elles se trouvaient sur le même domaine.

le reste, la copie collé juste ((

Par exemple, pour tirer dans le texte, la configuration de votre page sur www.yourdomain.com et mettre document.domain à yourdomain.com. Si vous essayez d'insérer une page html en utilisant Ajax de img.votredomaine.com, configurer une page qui, deviendra l'iframe, pour faire l'ajax pull.Après que tirer est complète définir le document.domain à votredomaine.com. En votre page sur www.créer un iframe qui a le jeu src sur votre page sur img. Étant donné que document.domain est défini, toutes les fonctions de la page parent peuvent être appelées via l'iframe. Disons que vous voulez mettre votre nouveau "ajaxed" html dans un div sur la page parente, vous pouvez faire que via "parent.getElementById ('yourDivName'). InnerHTML = Response.Text".

Si vous utilisez XML, vous pouvez configurer la relation de page/iframe comme ci-dessus. Cette iframe va faire l'appel ajax au XML sur img.yourdomain.com et faire quelque chose avec elle, disons le transformer en un tableau . Une fois cette opération terminée, définissez document.domain sur la page iframe . À ce stade, la page parent peut accéder à ce tableau sur son iframe via "iframeName.arrayName". Vous pouvez également avoir un tableau lu sur la page parent pour cette information et le passer au parent à partir de l'iframe via "parent.arrayName = iframeArray".

à l'origine par Hoppe @ Tom

Questions connexes