[英]AJAX POST to CodeIgniter controller
我在嘗試將數據發布到 CodeIgniter 時遇到了一些問題,我有這個。
阿賈克斯
$.ajax({
url: $('#url').val() + "Dashboard/Index",
dataType: 'json',
contentType: 'application/json',
type: 'post',
data: {data: data},
success: function( data ){
console.log(data);
},
error: function( jqXhr, textStatus, errorThrown ){
console.log(jqXhr);
console.log(textStatus);
console.log( errorThrown );
}
});
控制器 | Dashboard.php -> 類:儀表板,功能:索引
atm 我只是想看看它是否發布了一些東西,但沒有!
if($_POST) {
print_r($_POST);
die();
}
所以我的整個控制器看起來像這樣......
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Dashboard extends CI_Controller
public function index()
{
// $test = $_POST['data'];
// echo json_encode($_POST);
if($_POST) {
print_r($_POST);
die();
}
//////////////////////////////////Views/////////////////////////////////
// includes
$data['footer'] = $this->load->view('includes/footer', NULL, TRUE);
// App
$data['menuProfile'] = $this->load->view('app/menuProfile', NULL, TRUE);
$data['sidebarMenu'] = $this->load->view('app/sidebarMenu', NULL, TRUE);
$data['topNavigation'] = $this->load->view('app/topNavigation', NULL, TRUE);
$data['menuFooter'] = $this->load->view('app/menuFooter', NULL, TRUE);
// Dashboard
$dashboard['dinp'] = $this->load->view('app/dashboard/dinp', NULL, TRUE);
$dashboard['dispTitle'] = $this->load->view('app/dashboard/dispTitle', NULL, TRUE);
$dashboard['porcentaje'] = $this->load->view('app/dashboard/porcentaje', NULL, TRUE);
$dashboard['temp'] = $this->load->view('app/dashboard/temp', NULL, TRUE);
$dashboard['velocity'] = $this->load->view('app/dashboard/velocity', NULL, TRUE);
$data['dashboard'] = $this->load->view('app/dashboard/dashboard', $dashboard, TRUE);
$this->load->view('includes/head');
$this->load->view('app', $data);
$this->load->view('includes/jquery');
}
}
所以最終的輸出就是這樣:
Unexpected token < in JSON at position 0(…)
我不知道為什么帖子會返回整個 HTML,我將我的數據作為對象發布,我該怎么辦?
數據帖子包含 JSON 對象,並且您獲得了對象的一個元素,如下所示:
$this->input->post('your_post_element');
1)您必須重新檢查此變量中的內容
data: {data: data},
2)你已經設置
contentType: 'application/json'
所以你必須以 JSON 格式返回內容,並且還應該在響應頁面中將內容類型設置為 JSON
$this->output
->set_content_type('application/json')
->set_output(json_encode($_POST));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.