强制Firefox以时尚的方式呈现XML

时间:2010-08-16 19:30:25

标签: xml firefox

我正在尝试让Firefox以类似于Internet Explorer的格式呈现返回给它的XML。

目前它只显示字段值..即NO XML

我遗失了一些特殊的设置吗?

修改

这是要返回的xml

<ArrayOfSampleItem xmlns="http://schemas.datacontract.org/2004/07/InmoCasaService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><SampleItem><Id>1</Id><StringValue>Hello</StringValue></SampleItem></ArrayOfSampleItem>

但它显示以下内容

1Hello

修改

以下是通过fiddler返回的内容

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 222
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 16 Aug 2010 19:56:27 GMT

<ArrayOfSampleItem xmlns="http://schemas.datacontract.org/2004/07/InmoCasaService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><SampleItem><Id>1</Id><StringValue>Hello</StringValue></SampleItem></ArrayOfSampleItem>

修改

现在我有了这个...但仍然是同样的问题..看看内容类型

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 226
Content-Type: application/xml
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 17 Aug 2010 06:09:14 GMT

<ArrayOfSampleItem xmlns="http://schemas.datacontract.org/2004/07/InmoCasaService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><SampleItem><Id>1</Id><StringValue>He4444llo</StringValue></SampleItem></ArrayOfSampleItem>

4 个答案:

答案 0 :(得分:1)

这是因为Firefox正在尝试将文件呈现为HTML,因为Content-Type: text/html标题会告诉它。 HTML浏览器应该忽略未知标签。

您希望服务器返回Content-Type: application/xml。我不知道如何配置IIS来执行此操作,但最简单的方法可能是使用.xml扩展名来命名文件,如果您还没有。

答案 1 :(得分:1)

我有同样的问题,它原来是我的插件之一(Wappalyzer)。阅读,我认为有一些插件可以做到这一点(包括Firebug)。

禁用它并重新启动Firefox解决了这个问题。

答案 2 :(得分:1)

嗯,这是可能有帮助的魔法的一部分:

在你的javascript中,假设你有一串XML - 无论它如何到达 - 就像这样:

var myXMLDoc = "<?xml version='1.0' ?><snarg><floof>42</floof></snarg>";

如果将其卡入当前文档(或新窗口),如下所示:

document.write (myXMLDoc);

然后浏览器将其视为HTML,您将无法在Firefox中获得可爱的XML树形图 但是,如果您在文档之前加上魔术,告诉浏览器如何解释它:

document.write ("data:text/xml," + myXMLDoc);

然后,您将启动Firefox解释为XML并获得酷树图。

答案 3 :(得分:0)

它也可能无法在FF中渲染,因为你没有xml完整的结构,包括标题(不是http标题,它们似乎很好)和编码信息。