我有2个相同的xhtml文档,这些文档位于 html(第一个)和 xhtml(第二个)扩展名中。差异仅在扩展中。
使用ajax(jQuery 1.4.1)我尝试获取 1st ,但是Web服务器(IIS 5.1)使用Content-Type: text/html
而不是application/xhtml+xml
发送响应。如果我尝试第二次,则没有问题。
对于这两个文档,我使用$ .ajax({...}),但是我收到错误 1st (在评论中):
$.ajax({
url: url,
dataType: 'xml',
contentType: 'application/xhtml+xml',
success: function(data, ts, theXhr) { ... },
error: function(XMLHttpRequest, textStatus, errorThrown) {
// textStatus = "parsererror"
// errorThrown.lineNumber = 5193
// errorThrown.message = "data is null"
// errorThrown.name = "TypeError"
}
});
如何让[任何]网络服务器认为第一个文档是真正的xhtml?
答案 0 :(得分:0)
第一份文件是否形成良好?解析错误可能意味着无效的xml。
答案 1 :(得分:0)
AFAIK IIS使用文件扩展名来检测内容类型。您可以在IIS配置页面中看到MIME类型映射。
答案 2 :(得分:0)
如何使[任何] Web服务器思考 第一个文件是真正的xhtml?
从javascript的答案是:你不能。 Web服务器决定要发送的Content-Type。
如果您控制服务器: 您可以配置IIS以发送正确的Content-Type
如果您不控制服务器:除了使用服务器端脚本获取页面并发送正确的标题之外,您无能为力。
如何在IIS 5.0中添加内容类型(来自msdn):
将MIME类型添加到IIS 5.0
可以在IIS中注册MIME类型 5.0使用IIS管理单元。
例如,添加XML MIME类型 到使用IIS的默认网站 管理单元:
- 选择默认网站并启动 “属性”对话框。
- 选择HTTP标头选项卡。
- 在“MIME地图”下,单击“文件类型” 选项卡并选择新类型。
- 在“扩展名”字段中键入.xml 内容类型字段中的text / xml, 然后单击“确定”。
醇>将XML MIME类型添加到在给定计算机上运行的所有站点:
选择“Internet信息服务” 并打开“属性”对话框 框。
在“计算机MIME映射”下,单击“ 单击编辑按钮并选择新类型。
- 醇>
在“扩展名”字段中键入.xml 内容类型字段中的text / xml, 然后单击“确定”。
任何其他扩展名,例如.xsl (可扩展样式表),可能是 使用相同的程序添加。
只需使用您想要的扩展名/内容类型更改.xml
和text/html