1

我已经在 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();  
 }

我现在应该怎么做才能调试我的错误?

4

1 回答 1

3

<!DOCTYPE表示您的服务未输出纯 json。它可能被包裹在一个 html 包装器中,例如你实际上已经得到了

<!DOCTYPE ...>
<html>
<body>
...json goes here...
</body>
</html>

换句话说,您的控制器正试图吐出一个完整的 HTML 页面,而不仅仅是应该得到输出的 json 响应。

于 2013-07-04T19:53:14.583 回答