2013-03-27 78 views
0

我有一個PHP的API,它返回一個JSON數據,試圖接收JSON從我的應用程序時,我得到了follwoing錯誤:問題與返回的JSON MIME類型

"Expected content type {(\n \"text/json\",\n \"application/json\",\n \"text/javascript\"\n)}, got text/html"; 

你可以回答說,PHP API ISN 「T返回有效JSON,好了,我檢查了JSON的皮棉,這是一個有效的JSON,另外,頭被設置爲JSON

header('Content-Type: text/json'); 
    echo '{"Response":'.json_encode($arr).'}'; 

我還檢查MAMP mime.types文件,並將其正確包括JSON MIME類型。

我唯一懷疑的是當我通過瀏覽器調用API時,我得到了預期的JSON,但是當頁面的源代碼被甩掉時,它在開始時顯示出2條空行。如下所示。

1- 
2- 
3- {"Response":[{"Product ID":"12037","Product Title":"RIng 14K Cloud 9","Product Description":"RIng 14K Cloud 9","Product Wholsale Price":"$255","Product Sale Price":"$460","Category Id":"55","Category Name":"Rings","Product Image":"http:\/\/192.163.1.87:8888\/xxxxxx\/wp-content\/uploads\/2012\/12\/150101.jpg","Product Sub Images":["http:\/\/192.163.1.87:8888\/xxxxx\/wp-content\/uploads\/2012\/12\/150101.jpg"],"SKU":"150101-50","Quantity":"1","Size":"50","Color":"Y","Manufacturer":"xxxxxx"},{"Product ID":"12039","Product Title":"Ring 14K Cloud 9","Product Description":"Ring 14K Cloud 9","Product Wholsale Price":"$255","Product Sale Price":"$460","Category Id":"55","Category Name":"Rings","Product Image":"http:\/\/192.163.1.87:8888\/xxxxx\/wp-content\/uploads\/2012\/12\/150101.jpg","Product Sub Images":["http:\/\/192.163.1.87:8888\/xxxxx\/wp-content\/uploads\/2012\/12\/150101.jpg"],"SKU":"150101-52","Quantity":"1","Size":"52","Color":"Y","Manufacturer":"xxxxxx"}]} 

這是否與PHP代碼或MAMP服務器中的任何事情有關?提前Thanx。

+0

你如何試圖消耗json數據,當你得到錯誤? – datasage 2013-03-27 22:17:03

+1

將內容類型更改爲「application/json」 – Ibu 2013-03-27 22:18:20

+0

json的正確標題是header('Content-type:application/json')'。試試看。 – PlantTheIdea 2013-03-27 22:18:23

回答

1

您的輸出在開頭處有兩個空行。一旦輸出內容,就不能再使用header()函數來更改任何標題。

在某些文件的php打開/關閉標記之前或之後,可能會出現一些空格問題。確保每個文件上的<?php標籤都是文件中的第一件東西;檢查文件編碼;在php關閉標籤後不要留下尾隨空格,或者甚至從文件尾部刪除所有關閉?>標籤。

+0

嗨,謝謝你。實際上,我確實提供了所有提及的內容,刪除了所有結束標記,標題之前文件沒有「回顯」。有沒有任何PHP功能強制JSON頭或其他東西? – Malloc 2013-03-27 22:41:49

+0

你是否包含任何其他文件? – 2013-03-28 04:35:51

+0

我正在包含另一個文件,這是導致問題的原因。我怎樣才能避免這種情況? – 2015-03-17 16:57:01

0

而且,我相信,JSON正確的頭型是application/JSON:

header('Content-Type: application/json'); 

如果使用JSONP,它應該是應用程序/ JavaScript的:

header('Content-Type: application/javascript');