2013-07-04 63 views
1

我已經成功地創建在一個YII JSON API我驗證上http://jsonlint.com/和在使用jquery $ .getJSON web應用使用();錯誤JSON在機器人

一切工作細到現在

但是當我在使用它提供了相同的URL我的Android應用程序訪問相同的API Me錯誤

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 

所以我試了一次,然後複製所有JSON由yii生成一個文件,並將其命名爲mydata.json,並嘗試從我的android應用程序得到這個JSON,是的,一切工作正常

所以我的結論是,有可能是錯誤的yii,但我無法弄清楚我的API ge的方法neration是

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(); 
} 

現在我該怎麼做來調試我的錯誤?

回答

3

<!DOCTYPE表示您的服務是不是輸出純json。它可能被包裝在一個html包裝中,例如你實際上已經換句話說得到

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

,控制器試圖吐出一個完全成熟的HTML頁面,不只是應該得到輸出JSON響應。

+0

但相同的URL是在網絡上工作正常,當我訪問的URL直接,它工作正常 –

+0

是的,因爲你在瀏覽器中,這將使得所有的HTML查看它。嘗試「查看源文件」,你會看到所有的HTML scafffolding該JSON解碼器不能忽視。 –

+0

我很驚訝查看源代碼是不是有特定的標籤,但是是的,我可以檢查元素,你是對的有html標籤有 –