XMLHTTPRequest.statut renvoie 0 et responseText est vide dans FireFox 3.5
Je suis en train d'essayer de frapper une troisième partie de l'URL pour obtenir la réponse XML et de montrer la reposne dans ma page web.
Je reçois une réponse appropriée avec le statut de 200 et readystate que 4 dans internet explorer et les navigateurs Safari.
Mais Dans FF3.5 et Crome-je obtenir XMLHTTPRequest statut 0 et reponseText vient comme une chaîne vide. J'ai essayé plusieurs options de l'écriture de la normale XMLHTTPRequest code Ajax ainsi que l'aide d'un Prototype de la version 1.5 fichier js pour cette requête ajax, mais encore le statut et reponseText dans FF 3.5 reste le même à 0 et une chaîne vide.
Toute aide comment résoudre ce problème ou ce qui est exactement l'origine de ce problème serait grandement apprécié.
J'avais aussi essayé d'exécuter mon code au niveau local ainsi que le déploiement de serveur encore la repsonse dans FF est le même.
Ci-dessous mon code snippet
<script type="text/javascript" src="prototype_ajax.js"></script>
<script type="text/javascript" language="javascript">
new Ajax.Request("I place my URL Here", {
method: 'get',
onSuccess : function(transport){
var resultDoc = transport.responseText;
var rootObj = loadXML(resultDoc);
},
onFailure : function(transport){
alert(' On Failure '+transport)
}
});
function loadXML(xmlFile) {
var xmlDocElement =null;
var xmlDoc = null;
if (window.ActiveXObject) {
try {
//code for IE
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(xmlFile);
} catch (e) {
alert("inside catch::"+e.message);
}
} else {
//code for Mozilla, Firefox, Opera, etc.
parser=new DOMParser();
xmlDoc=parser.parseFromString(xmlFile,"text/xml");
//xmlDocElement=xmlDoc.documentElement;
}
//alert('loadXML value '+xmlDoc)
return xmlDoc;
}
</script>
Vous devez également utiliser une XMLHttpRequest pour charger le fichier XML, pas un DOMParser ou XMLDOM qui est unstandardised et beaucoup moins largement compatible.
OriginalL'auteur somen | 2009-12-30
Vous devez vous connecter pour publier un commentaire.
Il semble que vous avez trébuché sur le même la politique de l'origine. Vous devez utiliser un chemin relatif, sinon la plupart des navigateurs, il suffit de retourner un vide
responseText
.La suite d'un Débordement de Pile post est probablement aussi lié à votre problème:
Comme une solution de contournement possible, vous pourriez mettre en place un système très simple proxy inverse (avec mod_proxy si vous utilisez Apache). Cela vous permettra d'utiliser des chemins relatifs dans votre requête AJAX, tandis que le serveur HTTP agit comme un proxy pour tous "à distance" de l'emplacement.
Fondamentaux de la directive de configuration pour configurer un proxy inverse dans mod_proxy est la directive ProxyPass. Vous utilisez généralement comme suit:
Dans ce cas, le navigateur demandant
/web-services/service.xml
mais le serveur va servir ce, en agissant comme un proxy pourhttp://third-party.com/web-services/service.xml
.OriginalL'auteur Daniel Vassallo