PHP标头问题

时间:2013-05-08 09:56:38

标签: php xml http-headers mime-types atom-feed

我在PHP中将HTTP标头设置为:

header("Content-Type: application/xml"); 

我收到了以下回复:

<?xml version="1.0" encoding="utf-8"?>
<feedback>
    <result>False</result>
</feedback>

但是当我检查标题时,它表示响应类型为application/atom+xml。我需要application/xml格式。这个问题可能是什么原因?

2 个答案:

答案 0 :(得分:3)

没有理由不应该这样做。我刚刚尝试了一个带有xml的简单测试用例,它确实对我有用。

<?php
header("Content-Type: application/xml");
?><?xml version="1.0" encoding="utf-8"?>
<feedback>
    <result>False</result>
</feedback>

你的php中有更多内容,你没有向我们展示,或者你的服务器软件中可能存在错误配置。

<强>更新

根据您在答案中提供的信息,我会说您可以通过将根元素更改为不以<feed开头的任何内容来解决此问题。正如我在评论中所说,有些东西错误地将其解释为Atom提要并重写内容类型。

也就是说,假定其他字符串(例如<rss)可能触发内容类型的其他重写,因此如果您可以追踪任何负责该错误的系统并摆脱它,那将更为可取。它的。

答案 1 :(得分:0)

我不能说技术解释是什么。但是更改XML内容解决了我的问题。这是一个小小的变化。我刚刚添加了一个顶级分支元素

<?xml version="1.0" encoding="utf-8"?>
<data>
<feedback>
    <result>True</result>
</feedback>
</data>