2013-03-27 98 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');