2013-04-22 21 views
0

林做出了一個XML文件的簡單AJAX要求,但不是文本/ XML 它返回它作爲應用程序/ XML,這apperently給我一些的問題。jQuery的AJAX請求被視爲應用/ XML而不是文本/ XML

代碼:

method.getXmlData = function() { 
    return jQuery.ajax({ 
    type: "GET", 
    url: "testxml.xml?id=" + theQuizId, 
    async: false, 
    dataType: "xml" 
    }); 
}; 
theQuizData = method.getXmlData(); 

任何人有類似的問題?

注意:由於CORS,不能包含js-fiddle。

+0

沒有給出什麼問題?這顯然如何? – Quentin 2013-04-22 16:28:18

+1

你試過明確設置'contentType' – 2013-04-22 16:33:57

+0

'contentType:'text/xml;' – 2013-04-22 16:35:12

回答

-1

在哪個瀏覽器上試用上面的代碼? 嘗試使用dataType : "text/xml"而不是xml。 IE不同地處理XML數據類型(因爲像ActiveX一樣的ActiveXObject其他瀏覽器將它們作爲Simple XML處理)。 例如。

$.ajax({ 
    url : "myUrl", 
    type : 'post', 
    dataType: ($.browser.msie) ? "text" : "xml", 
    success: function(data) { 
     var xml; 
      if (typeof data == 'string') { 
      /*This is for IE*/ 
      xml = new ActiveXObject("Microsoft.XMLDOM"); 
      xml.async = false; 
      xml.loadXML(data); 
      } else { 
      xml = data; 
      } 
    } 
} 
+0

*嘗試使用dataType:「text/xml」* - 由於問題說服務沒有,所以假設改變超出了作者的控制似乎是合理的。 – Quentin 2013-04-22 16:34:13

+0

* IE處理XML數據類型不同* - 與什麼不同?不同以什麼方式? – Quentin 2013-04-22 16:34:45

+0

嗯,我是說在JavaScript Ajax調用更改dataType不在服務器上。 – 2013-04-22 16:37:27

0

我得到它的工作的代碼更改爲以下:

method.getXmlData = function() { 
var outerData; 
jQuery.ajax({ 
    type: "GET", 
    url: "testxml.xml?id=" + theQuizId, 
    async: false, 
    cache: false, 
    dataType: "xml", 
    success : function(data) { 
    outerData = data; 
    } 
}); 
return outerData; 
}; 
theQuizData = method.getXmlData(); 
相關問題