Pourquoi cette demande de domaines de travail dans d'autres navigateurs mais pas IE9?

J'ai quelques code Ajax qui fonctionne dans Safari, Chrome et Firefox, mais pas dans IE9.

La page est sur http://foo.com/test.aspx et c'est faire une requête AJAX à un service web hébergé sur https://service.foo.com. Je pensais que je n'aurais pas du tout de la croix-domaine des questions mais étant donné IE9 est bloquant, il semble que je fais 🙁

var tempUrl = "https://service.foo.com/dummy.svc/test?hi=bye";
$.get(tempUrl, "html");

Comme je l'ai mentionné, le code fonctionne dans les 3 autres navigateurs, tout simplement pas IE9. (Je suis seulement préoccupé par IE9, pas IE8 ou plus).

J'ai fait quelques recherches et trouvé cet article sur MSDN qui dit:

Des requêtes inter-domaine nécessitent une
accord entre la page Web et le
serveur. Vous pouvez lancer une
la croix-demande de domaine dans votre page Web
par la création d'un objet XDomainRequest
la fenêtre de l'objet et de l'ouverture d'un
connexion à un domaine particulier. L'
navigateur va demander des données à partir de la
domaine du serveur par l'envoi d'une Origine
en-tête avec la valeur de l'origine.
Il ne fera que compléter la connexion
si le serveur répond avec un
Access-Control-Allow-Origin-tête de
soit * une ou l'adresse URL exacte de la
page de requête. Ce comportement est partie
du World Wide Web Consortium
(W3C) s de l'Application Web de Travail
Du groupe de projet de cadre sur le côté client
la croix-domaine de la communication que l'
XDomainRequest objet s'intègre avec.

Avant de m'en aller sur le chemin de l'aide XDR je voulais vérifier avec des gens plus intelligents que moi de savoir si cette approche est la bonne ou pas.

  1. Ajouter Response.AddHeader("Access-Control-Allow-Origin", "*"); à ma page
  2. Créer condition de code jscript qui détecte IE9 et utilise XDR au lieu de l'ordinaire jquery appel, je suis en utilisant avec $.get.

Suis-je complètement à côté ou est-ce la bonne façon d'aller à ce sujet?

(En supposant que c'est la bonne façon de faire, d'où vient le Acecss-Control-Allow-Origin en-tête de réponse aller -- sur ma page à http://foo.com/test.aspx ou sur le webservice à https://service.foo.com?)

  • Généralement parlant, JQuery est conscient de navigateurs de même origine restrictions et ne devriez pas essayer d'utiliser la SCRO dans les navigateurs qui ne supportent pas. Voyez-vous des erreurs de script dans IE9 est les Outils de développement F12 console?
  • Eric, aucune erreur n'est levée dans les outils de dev console.
InformationsquelleAutor TMC | 2011-06-22