簡體   English   中英

AJAX POST 到 CodeIgniter 控制器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM