在以下示例中,“xxx.xml”是有效的XML文件,“xxx.txt”是其副本(但扩展名已更改)。
为什么我不能在我的AJAX请求中交替使用这些文件?
function test(url, handleT){
dojo.xhrGet({
url: url,
handleAs: handleT,
load: function(data, ioArgs) {
console.log('data=',data);
}
});
}
test('xxx.xml', 'xml'); //Works OK
test('xxx.txt', 'text'); //Works OK
test('xxx.xml', 'text'); //Works OK
test('xxx.txt', 'xml'); //data === null ?!
handleAs
参数不应该为我做这些转换吗?
这是一般情况还是只发生在Dojo上?
答案 0 :(得分:1)
如果您在包含文件的目录中的.htaccess中编写以下内容,则可以使用所需的扩展名:
ForceType text/xml
答案 1 :(得分:0)
网络服务器将为扩展程序提供不同的内容类型。坚持.xml,或在网络服务器上更改。
修改
更具体一点:由于XML也是文本,因此可以“降级”为文本 - 每个XML文档也是文本文档。并非每个文本文档都是XML文档,因此您无法将其“升级”为XML。
您的网络服务器可能将.txt作为“普通/文本”提供 - 而且不是XML。
答案 2 :(得分:0)
看起来Fiferox一直都是错的: https://developer.mozilla.org/en/XMLHttpRequest#responseXML
(尚未测试IE中的工作原理)