我有开始的每一页这样的一个模板:
<?xml version="1.0" encoding="utf-8"?>
<!-- blah blah-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml">
...
</html>
产生该错误:
XML页面无法显示使用样式表无法查看XML输入。 请更正错误,然后单击刷新按钮,或稍后重试。
服务器不理解请求,或请求无效。 错误处理资源' http://www.w3.org/TR/xhtm ...
在IE浏览器,因为W3C已经停止服务的DTD 。
什么是解决这个问题的正确方法?
可能的解决方案
我上传两个文件给你看它在行动:
- 作为HTML文件: 尝试一下 ,头是
text/html
。 - 由于XML文件尝试一下 ,头是
text/html
。
首先会在所有的浏览器。 第二个将在IE中失败(和他人合作),因为它忽略了服务器的头。 原因是: *.xml
文件名部分的结局。 这是IE浏览器的错误的行为,但我们必须对付它。 如果你的文件名XML的结束,或者您的服务器发送它通过按application / xml然后更改这些设置。
背景
你指的是资源标识符不是一个资源标识符。 这是一个唯一的标识符,一个占位符,可以这么说。 它从来就不是在被服务的HTML的情况下下载(不管它是XHTML在这种情况下)。 这是行为不端的IE浏览器。
你指的是后表明,他们可能采取的资源脱机。 该DTD仍然在线 。 与其他标准,他们用不同的方法,这里的资源是不是在相同的位置标识在线(同样的问题,人与命名空间:它不是一种资源,它是一个标识符)。
这不是XML恐怖,而只是IE行为古怪。 与IE浏览器和XHTML工作,你必须为它服务作为text/xml
的MIME类型。 如果您在本地运行它,你可以得到这个错误。 尝试以不同的方式为它服务。
注意:你问之前:XML规范指出DTD不应该被下载,而应该被看作是一个唯一的ID。 仅用于验证XML下载资源还是不错的,但标准说,资源ID和实际资源不需要相同。
我发现一个帖子说,类似的事情是由于权限问题。
你可能会想尝试在IE的情况如下:
嗨卡尔,只是猜测,可能是什么问题..你的IE浏览器的安全设置导致此错误。 如果您检查Internet选项 - >安全,你会看到一个选项“跨域访问数据源”。 它通常被禁用。 请启用它,看看它是否工作..
问候,穆库尔
来源: http://www.stylusstudio.com/xsllist/200412/post41070.html
我不知道这个选项可以提高其安全性的担忧。
IE浏览器根本不支持XHTML。
它应该在其DTD目录中DTD。 不支持浏览器实际下载DTD(出于实际原因,该规范愚蠢允许)。
用户需要安装以下软件更新来解决这个问题:
http://support.microsoft.com/kb/973687/