我已经在yii中成功创建了一个JSON API,我在http://jsonlint.com/上验证并使用jquery $ .getJSON()在Web应用程序中使用;
到目前为止,一切都运转良好
但是当我使用相同的URL访问我的Android应用程序中的相同API时,它会给我错误
07-05 00:57:45.548: E/JSON Parser(28866): Error parsing data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject
所以我再次尝试将yii生成的所有JSON复制到一个文件中,并将其命名为mydata.json,并尝试从我的Android应用程序中获取此JSON,是的,一切正常。
所以我总结说yii可能有问题,但我无法弄清楚我的API生成方法是
public function actionMycontroller{
header('Content-type: application/json');
header('Access-Control-Allow-Origin: *');
$json=" all my json generation code";
echo json_encode($json);
Yii::app()->end();
}
我现在应该怎么做来调试我的错误?
答案 0 :(得分:3)
<!DOCTYPE
表示您的服务不输出纯json。它可能包含在一个html包装器中,例如你真的得到了
<!DOCTYPE ...>
<html>
<body>
...json goes here...
</body>
</html>
换句话说,你的控制器正试图吐出一个完整的HTML页面,而不仅仅是应该输出的json响应。