2016-07-25 106 views
3

此請求僅在Internet Explorer工作, 我已經嘗試了很多不同的解決方案,對於這兩天我一直在試圖使其工作,但是我做不到。請指教。GET請求只能在IE

純javascript:

 var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      data = xmlhttp.responseText; 
      console.log(data); 
      document.getElementById("p").innerText = data; 
     } 
     }; 
    xmlhttp.open("GET", "http://myanimelist.net/api/anime/search.xml?q=naruto", true); 
    xmlhttp.setRequestHeader('Authorization','Basic TUFMUTpNTU1xcXExMTEyMjJAQEAjIyM='); 
    xmlhttp.send(null); 

的jQuery:

$.ajax({ 
    url: "http://myanimelist.net/api/anime/search.xml?q=naruto", 
    cache: false, 
    headers: {"Authorization": "Basic TUFMUTpNTU1xcXExMTEyMjJAQEAjIyM=" ,"Content-Type": "application/xml"}, 
    method: 'GET', 
    dataType: 'xml', 
    async: true, 
    success: function(data) { 
    var xmlText = new XMLSerializer().serializeToString(data); 
    var xmlTextNode = document.createTextNode(xmlText); 
    var parentDiv = document.getElementById('sdiv'); 
    parentDiv.appendChild(xmlTextNode); 
    } 
    }); 
+1

也許是因爲你使用的是非標準'的innerText '?使用'textContent'。同時檢查你的控制檯是否有錯誤 –

+0

@ AlexanderO'Mara試過了,無濟於事。 – MALQ

+0

那麼,什麼不起作用?你檢查過你的開發者控制檯嗎? –

回答

0

AJAX是因爲Same Origin Policy的限制到您的網站的同一個域。

您必須找到一種方法來規避它,或者將AJAX與服務器端腳本結合使用以獲得理想的結果。如果你要使用類似PHP,你可以使用類似simplexml_load_string(file_get_contents("http://example.org/search.xml?query"));但我想你也會發現有問題的域使用HTTP認證以及