2011-11-27 50 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函数。