Javascript 为什么我的AJAX请求依赖于资源的文件扩展名?
在下面的示例中,“xxx.xml”是有效的xml文件,“xxx.txt”是它的副本(但扩展名已更改) 为什么我不能在AJAX请求中互换使用这些文件Javascript 为什么我的AJAX请求依赖于资源的文件扩展名?,javascript,ajax,dojo,Javascript,Ajax,Dojo,在下面的示例中,“xxx.xml”是有效的xml文件,“xxx.txt”是它的副本(但扩展名已更改) 为什么我不能在AJAX请求中互换使用这些文件 function test(url, handleT){ dojo.xhrGet({ url: url, handleAs: handleT, load: function(data, ioArgs) { console.log('data=',data);
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中出现?Web服务器将为扩展提供不同的内容类型。坚持使用.xml,或者在Web服务器上更改它 编辑 更具体一点:因为XML也是文本,所以可以“降级”为文本——每个XML文档也是文本文档。并非每个文本文档都是XML文档,因此您无法将其“升级”为XML
您的Web服务器可能将.txt作为“纯/文本”提供,而这不是XML。Web服务器将为扩展提供不同的内容类型。坚持使用.xml,或者在Web服务器上更改它 编辑 更具体一点:因为XML也是文本,所以可以“降级”为文本——每个XML文档也是文本文档。并非每个文本文档都是XML文档,因此您无法将其“升级”为XML
您的Web服务器可能将.txt作为“纯/文本”提供,而这不是XML。如果您在包含文件的目录中的.htaccess中写入以下内容,则可以使用任何扩展名:
ForceType text/xml
如果在包含文件的目录中的.htaccess中写入以下内容,则可以使用所需的任何扩展名:
ForceType text/xml
看起来一直都是Fiferox的错:
(还没有在IE中测试它是如何工作的)看起来这一直都是Fiferox的错: (还没有测试这在IE中是如何工作的)