2012-06-03 157 views
0

兩部分問題。通過AJAX發送JSON,返回任何

如何獲取AJAX調用的控制器中的發佈數據?

我發送的JSON沒有標識。例如:

$.ajax({ 
    type: 'POST', 
    url: action, 
    data: JSON.stringify(data), 
    success: function(data){ 
     alert(data); 
    }, 
    dataType: 'json' 
}); 

哪裏data只是[{"name":"variable_name", "value":"12"}]

我想:

public function save() 
{ 
    header('Content-Type: application/json'); 
    $json = $this->input->post('data');   
    echo $json; 
} 

如何退還比JSON其他的東西嗎?

例如,我是用下面的控制器測試此:

public function save() 
{ 
    echo "test"; 
} 

我得到的時候成功函數被調用是null

任何指針?

回答

2

您將不得不設置dataType。當數據類型設置爲'json'時,jquery自動將接收到的數據轉換爲js對象。由於你只返回一個字符串(這是不合法的json),json解析器不知道該怎麼做,只是返回null。通過刪除數據類型,您可以獲得原始字符串,然後根據字符串的內容使用條件來決定是否將其解析爲json。

2

你在PHP原始POST數據(單程至少是)方式file_get_contents('php://input')

這將返回JSON作爲原始字符串,您可以在調用json_decode