Je suis à l'aide de la SCRO à appeler une croix domaine de l'API, mais Internet Explorer est de donner à des questions. La SCRO devrait être possible dans IE8 et IE9 par le biais de l' XDomainRequest
objet, cependant je ne peux pas faire les choses à travailler..
JQuery refuse de fournir un support natif pour les XDomainRequest, cependant, plusieurs plugins jQuery est proposé d'ajouter cette prise en charge. Ce sujet suggèrent que ces deux plugins: jQuery.XDomainRequest.js et xdr.js, qui a été signalé au travail. Autant que je sache, les plugins automatiquement remplacer le comportement de l' jQuery.ajax
. J'ai trouvé un autre plugin ici.
J'ai mis un peu des pages de démonstration avec les plugins jQuery.XDomainRequest et xdr et jquery.c'est à dire.de la scro qui effectuent des requêtes ajax pour un SCRO serveur activée. Les pages sont de travail dans Chrome et Firefox, cependant IE8/9 instantanément jeter une erreur permission denied (même avant de faire la demande). Cette MSDN post suggèrent d'ajouter un autre gestionnaire d' xhr.onprogress = function() {};
mais j'ai essayé et ça ne fonctionne pas non plus.
Des indices de ce que je fais de mal? J'ai aussi testé avec IE8, maintenant, à l'aide de MS virtual server, mais il a exactement le même problème.
Edit: OK j'ai donc pensé qu'une partie du problème est que j'ai été à l'aide de POST sur HTTPS. Apparemment XDomainRequest ne permet pas de la SCRO sur HTTPS. Je peux passer en HTTP mais j'ai vraiment besoin de POST.
Edit2: Voir ce problème sur github pour la fin de cette histoire. Il s'avère que lors de l'utilisation de HTTP POST, le xDomainRequest ne peut encoder le corps de la requête (arguments) text/plain
. Ce joli beaucoup, il est inutile, parce que tout le monde utilise application/x-www-form-urlencoded
ou multipart/form-data
.
Résumé: je recommande fortement de ne pas investir de temps dans XDomainRequest, parce qu'il est terriblement mauvaise mise en œuvre avec de nombreuses limitations. Essentiellement, il ne fonctionne vraiment pour des demandes pour les non-ssl des serveurs, de sorte que vous pourriez aussi bien utiliser jsonp
ou quoi que ce soit.