我是新來的PHP/jQuery的編程,我所有的這一天過去試圖搞清楚如何從一個jQuery AJAX調用訪問JSON場:無法訪問在AJAX調用JSON領域
我使用codeingniter,並在我的控制器相關的代碼是:
if($this->input->is_ajax_request())
{
$view_data['test'] = 'ajax';
echo json_encode($view_data);
}
else
{
$view_data['test'] = 'not ajax';
$data = array(
'javascripts' => array(
'js/jquery.dataTables.js',
'js/zona/dataTable_zone.js',
'js/zona/gestisci_zone.js',
'js/jquery-ui-1.8.20.custom.min.js' ,
'js/jquery.ui.error-panel.js',
'js/jquery.validate.min.js' ,
'js/localization/messages_it.js'
),
'style_sheets' => array(
'css/south-street/jquery-ui-1.8.20.custom.css' => 'screen',
'css/jquery.dataTables.css' => 'screen'
),
'content' => $this->load->view('zona/gestisci_zone', $view_data, TRUE)
);
$this->load->view($this->template, $data);
}
` 在視圖相關的代碼是
<div id="id_test"> <p><?php echo $test ?> </p></div>
和JavaScript文件相關的AJAX代碼是
`$阿賈克斯({類型: 「POST」, 網址:this_url, 數據類型: 'JSON', 數據:post_data,
成功:功能(數據){
console.log(data);
console.log($("id_test").empty());
$("#id_test").empty().append(data.test);
},
error: function(data){
alert("error");
) ;`
這樣的AJAX輸出爲Array{"test":"ajax"}
我預期的行爲是使用$("#id_test").empty().append(data.test);
的AJAX OUTP ut將只是ajax這個詞,但它只是返回一個空白的div。 我試圖在許多模式下訪問,但我沒有想到如何實現這一點。 也許我失去了一些東西,因爲我缺乏經驗或者我使用了錯誤的方法。 有什麼建議嗎? :)
經過一些調試後,我得出的結論是明文/錯誤的JSON問題。 它只返回數組的文本rapresentation而不是json數組。現在,我怎麼能從控制器發送正確的json數組? (我已經強制mimetype到應用程序/ json沒有效果)
console.log(data)給你什麼,以及console.log($(「id_test」)。empty())? –
成功的方法嘗試調試數據,如console.log(數據),讓我知道它是否顯示任何結果 –
我現在在家裏。只要我可以,我會試試這兩個!謝謝! – Pulz