XML yanıtını almak ve web sayfamda deposu göstermek için üçüncü taraf bir URL'ye vurmaya çalışıyorum. IE ve Safari tarayıcılarında 200 ve readystate 4 olarak doğru bir yanıt alıyorum. Ancak FF3.5 ve Crome'da XMLHTTPRequest durumunu 0 olarak al ve reponseText boş bir dize olarak geliyor. Ben normal XMLHTTPRequest Ajax kodunu yazarken birçok seçenek denedim ve bu ajax isteği için Prototype 1.5 sürümü js dosyasını kullanmaya devam ettim ama yine de FF 3.5'deki durum ve reponseText 0 ve boş dize ile aynı kalıyor.XMLHTTPRequest.status 0 döndürür ve responseText boştur FireFox 3.5
Bu sorunun nasıl giderileceği veya bu soruna tam olarak neden olan her şey büyük ölçüde takdir edilecektir. Ayrıca kodumu yerel olarak çalıştırmayı denedim ve aynı zamanda web sunucusuna dağıtmak da FF'deki aynı şeyle aynıydı.
Aşağıda same origin policy çarptı anlaşılıyor benim kod parçacığı
<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>
"Üçüncü taraf URL'si", isteği yürüten komut dosyası içeren sayfa ile aynı etki alanında mı? – CalebD
Ayrıca, XML dosyasını yüklemek için bir XMLHttpRequest kullanmalısınız, bir standart olmayan ve daha az geniş çapta uyumlu olan bir DOMParser veya XMLDOM değil. – bobince