2010-05-15 17 views
0

Une situation non hypothétique, mais abstraire:AJAX, sous-domaines et la réponse 200 OK

J'ai un domaine www.foo.com, dont je fais un AJAX POST à ​​beta.foo.com. En examinant l'objet XHR, je vois un entête de réponse de 200 OK, mais pas de texte de réponse - j'obtiens même une réponse de 12B, qui est la réponse exacte (une chaîne de 12 caractères) que j'attends - mais le texte de réponse est blanc.

S'il s'agit d'un problème inter-domaines, pourquoi est-ce que je reçois 200 OK, et mieux encore - pourquoi est-ce que je vois les fonctions PHP sur le côté beta.foo.com - sans réponse?

+0

Ce n'est pas un problème de domaine croisé. Il n'y a aucun modèle de sécurité pour AJAX. –

+1

Utilisez-vous firebug pour voir le texte de la réponse? –

+1

Postez votre code javascript. Sans voir le code, il n'y a pas assez d'informations ici pour déboguer complètement le problème. – Asaph

Répondre

0

Vous ne pouvez pas faire des sous-domaines croisés ajax appelle aussi simple que cela. Il y a quelque chose qui s'appelle Same origin policy qui vous empêche de faire cela. Si vous voulez trier ce problème, vous devez utiliser JSONP ou Iframes.

Installez firebug et vous verrez un code http 200 et une erreur: cette erreur est une action SOP.

+0

JSONP est le ticket dans ce cas. –

0

Vous avez mentionné que vous vérifiez la propriété responseText. Est-il possible que votre réponse soit au format XML? Si vous envoyez une requête XML ou si le type de réponse est 'text/xml', vous obtiendrez une valeur responseXML. Je crois que la propriété responseText peut être vide si elle est au format XML.

exemple au hasard de google:

http://javascript.about.com/library/blajax08.htm