2011-11-27 53 views
0

我試圖下載一個XML文件,但它沒有.xml擴展名。 示例:獲取沒有.xml擴展名的XML文檔

 
$.ajax({ 
     type: "GET", 
     url: template.tmx, 
     dataType: "xml", 
     async: false, 
     success: function(xml, textStatus, jqXHR){ 
       k.operations.load.processMap(xml); 
     } 
}); 

但是:這不起作用。成功功能永遠不會被解僱。

如果我刪除dataType: "xml",行,它實際上會觸發成功功能。

但後來出錯了。我無法對結果做任何事情,例如在$(xml).find()。通常,當你將一個XML字符串傳遞給jquery時,它應該只處理它,但它不起作用。

您可以在這裏找到xml文件: http://kipdola.be/subdomain/kiflea/template.tmx

+1

你是否將'Content-Type:text/xml'作爲頭文件的一部分發送出去? – JCOC611

回答

2

擴展都不會有問題,但MIME類型一樣。您的資源發出

content-type: text/plain 

jQuery似乎拒絕將該類型的響應處理爲XML。

您需要更改服務器爲資源發出的content-type,或者如果不能,請使用「普通」Ajax請求獲取數據並手動解析數據。

編輯:似乎有一種方式來convert on the fly因爲jQuery的1.5:

在jQuery 1.5,jQuery的可以從它的Content-Type頭收到您所需要的數據類型轉換。例如,如果你想要一個文本響應爲XML進行處理,用「文字XML」對於具體的數據類型

1

你應該確保你的網絡服務器供應與text/xml一個Content-Type文件。現在,您的文件被作爲text/plain提供,這就是爲什麼當您指定dataType: "xml"時,jQuery不會調用success函數。