2013-05-08 40 views
0

我已经设置HTTP头在PHP中为:PHP头问题

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

而且我得到了如下回应:

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

但是当我检查头,它说的响应类型是application/atom+xml。我需要这在application/xml格式。这个问题的原因是什么?

+0

你看过原始页眉,而不是通过浏览器? – LeonardChallis 2013-05-08 09:58:07

+0

我检查了问题保持不变。实际上,XML用于iOS开发。当我通过xCode进行调试时,我得到了相同的响应头文件 – 2013-05-08 09:59:54

+0

也许有文件编码,bom签名或类似的问题? – Kamil 2013-05-08 10:11:10

回答

3

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

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

要么你有更多的PHP,你没有向我们展示,或者可能是你的服务器软件有错误的配置。

更新

根据你在你的答案提供的信息,我说你可以通过改变你的根元素任何不与<feed开始解决这个问题。正如我在我的评论中所说的,有些东西不正确地将其解释为Atom提要和重写内容类型。也就是说,假设其他字符串(例如<rss)可能会触发其他内容类型的重写,因此如果您可以追踪任何系统对错误负责并摆脱它,那将是更可取的。

+0

感谢您的回答朋友。是啊。其他答案很好。并没有隐藏的PHP。这就是为什么我很挣扎。 – 2013-05-08 10:10:10

+0

那么我提供的这个简单的测试用例是否适合你? – 2013-05-08 10:12:33

+0

其实它没有工作。我改变了这样。 <?php header(“Content-Type:application/xml”); echo'<?xml version =“1.0”encoding =“utf-8”?>' ?> 仍然得到相同的标题。 – 2013-05-08 10:18:16

0

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

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

有趣。我怀疑某个东西(无论是你的服务器还是代理服务器)都检测到你的文档的第一个元素是以' 2013-05-15 14:19:01

+0

谢谢詹姆斯。我认为这种事情正好发生。我已经通知服务器人员检查。 – 2013-05-16 02:04:59