2013-05-08 74 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