Контроллер Codeignigter не возвращает JSON - PullRequest
0 голосов
/ 22 марта 2019

У меня происходит странная вещь, когда JSON не выводится.Chrome показывает

«Не удалось загрузить данные ответа».

Моя задача контроллера проста, и другие экземпляры возвращают JSON, но, судя по всему, я не могу понять это.Приведенная ниже функция возвращает сообщение об ошибке загрузки.Но если я раскомментирую строку var_dump ().Я получаю var_dump, как и ожидалось, и повторил JSON.Как я могу вывести только JSON.

public function updateDealStatus() {

$response_array = array();

$data = $_POST;

if (isset($data["currentDeal"]) && $data["currentDeal"] >= 0) {

    $update = array('deal_status' => $data['statusUpdate']);    

    $this->db->where('deal_id', $data["currentDeal"]);
    $this->db->update('deals', $update);  

    if ($this->db->trans_status() === TRUE) {
        $response_array = array('status' => 'success', 'message' => 'Data changed'); 
    } else {
        $response_array = array('status' => 'success', 'failed' => 'No data changed'); 
    }

}

header('Content-Type:application/json');

//var_dump(json_encode($response_array));

echo json_encode(array($response_array));
return;

}

Ajax Call:

$.ajax({
                type: "POST",
                dataType: "json",
                url: url,
                cache : false,
                data: data, // serializes the form's elements.
                success: function (res) {

                        $('#quickTimeModal').modal('toggle');

                }
            });

enter image description here

Подробнее: Добавление специфики кAjax Call:

contentType: "application/json; charset=utf-8",
dataType: "json",

Результаты с var_dump:

ajax

И «Не удалось загрузить данные ответа».без var_dump.

Ответы [ 2 ]

0 голосов
/ 22 марта 2019
<code>This is build in codeigniter check for ajax `$this->input->is_ajax_request()`

    if( $this->input->is_ajax_request() ) {
        error_reporting (0);
        echo json_encode( $response_array);
    }
    else{
        echo '<meta charset="UTF-8"/>';
        echo 'NON AJAX MODE :<br /><br /><pre>' . print_r( $response_array, true ) . '
';}
0 голосов
/ 22 марта 2019

Можете ли вы попробовать это,

//header('Content-Type:application/json');

//var_dump(json_encode($response_array));

echo json_encode($response_array);
exit();

Удалить contentType из вызова ajax

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...