2010-03-02 22 views
1

J'ai un domaine foo.com sur la barre de serveur. J'ai un sous-domaine api.foo.com qui a une entrée CNAME pointant vers ghs.google.com (car le sous-domaine est utilisé par Google Apps).Javascript document.domain clarification

J'essaye de faire des appels de jQuery.get() de search.foo.com à api.foo.com. Les appels semblent tous passer correctement, et la fonction de rappel est exécutée à chaque fois, mais les données retournées sont toujours une chaîne vide, ce qui me fait penser à une sorte de politique de sécurité du navigateur.

Premièrement, un appel d'a.foo.com vers b.foo.com est-il autorisé?

si (! Autorisé) { // Deuxièmement - comment puis-je faire fonctionner cette fonction? }

Merci,

Finbarr

+0

Il semble qu'un appel de a.foo.com à b.foo.com soit illégal. De ce que je peux rassembler, vous pouvez faire un cal d'un.foo.com à foo.com, mais pas l'inverse. – Finbarr

Répondre

2

Finbarr a la bonne idée. Vous ne pouvez pas faire cross site XHR, et a.foo.com à b.foo.com est considéré comme un site croisé.

Cela dit, vous avez quelques options. Vous pouvez faire quelque chose comme ça - http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html

Nous utilisons django/python dans la maison, mais je l'ai fait quelque chose de similaire lorsque la demande est faite par le serveur et il y a une vue simple, configuré pour accepter la requête AJAX et retourner le les données qui ont été demandées côté serveur. J'espère que cela pourra aider! Edit: Je viens de remarquer que Finbarr était le soumissionnaire et le commentateur - désolé!

+0

Je l'ai fait par le passé, mais la rapidité était essentielle dans ce cas. J'ai juste déplacé l'appelant ajax à a.foo.com aussi et les licornes dansent encore sous les arcs-en-ciel. – Finbarr