Quelle URL est dans votre navigateur, et ce que l'URL est votre appel Ajax? Frappais Les navigateurs ont des contraintes de sécurité qui n'autorisent pas les appels AJAX interdomaines. Ainsi, par exemple, si je suis le chargement d'un fichier local:
http://localhost:20080/myCustomPage.html
et dans cette page, je fais un appel ajax à
http://search.twitter.com/search?q=test
je recevrais un avertissement de sécurité du navigateur. Selon votre navigateur, cela peut se manifester dans une icône d'avertissement dans le coin inférieur (IE), ou une erreur dans le journal javascript (firefox).
Il existe un moyen de contourner cela dans un cas spécifique. Ce cas étant une demande GET. Pour ce faire, au lieu de faire un appel 'ajax', vous incluez une balise. Cette étiquette de script sera alors lue et chargée. La capture ici, est que l'appel doit maintenant inclure une méthode de "rappel", que vous pouvez implémenter de votre côté, qui est appelée avec le résultat de l'appel.
Ainsi, au lieu d'une réponse comme:
{
"first_name": "peter",
"last_name": "parker"
}
vous devez retourner
myCallBackFunction({
"first_name": "peter",
"last_name": "parker"
});
Cet exemple utilise JSON, mais vous pouvez facilement utiliser XML, HTML ou tout autre format de résultat que tant que la fonction est appelée.
myCallbackFunction("INSERT RESPONSE TEXT HERE")
Cette méthode est couramment dénommée JSONP et est heureusement mis en œuvre dans les bibliothèques javascript communes comme jquery du point de vue du client. Si vous contrôlez le côté serveur, vous devrez coder en dur un wrapper callBackFunction ou afficher un paramètre permettant au client de le définir. Et malheureusement, si vous ne possédez pas la bibliothèque, vous ne pouvez pas faire grand-chose à moins que le propriétaire du service ne fournisse déjà cette fonctionnalité. Heureusement, la plupart des services Web 2.0 vous permettraient de mettre en œuvre cette fonctionnalité.
Dans la version de production, essayez-vous de faire un appel inter-domaines? –
Salut. Non, tout est hébergé sur mon domaine. Le .aspx appelle le webmethod dans ce code-behind particulier. – XSL