Запрос на удаление Ajax возвращает 200, но вместо успеха выдается ошибкаJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Гость
 Запрос на удаление Ajax возвращает 200, но вместо успеха выдается ошибка

Сообщение Гость »

Привет, мне не удается понять, где я ошибся, поскольку функция удаления работает хорошо, однако ошибка возникла, хотя ответ JSON возвращает успех.

Код: Выделить всё

$(document).on('click', '.remove-btn', function() {
var id = $(this).data('id');
var confirmDelete = confirm("Are you sure you want to remove this User");

formData = {
'form_process' : 'Remove User',
'id' : id,
}

if (confirmDelete) {
$.ajax({
type    : 'POST',
url     : 'library/page/process/remove_user.php',
data    : formData,
dataType: 'json',
beforeSend: function(){
window.scrollTo(0, 0);
$("#loading-overlay").show();
},
success : function(data) {
$("#loading-overlay").hide();
if (!data.success) {
danger ('Process Error', data.errors)
} else {
success ('Success', 'User has been removed successfully.');

setTimeout(function() {
window.location.href = window.parent.CloseDialog();
}, 3000);
}
},
error : function (xhr, ajaxOptions, thrownError) {
$("#loading-overlay").hide();
danger ('Process Error', "There is unknown error occurs. Please contact administrator for system verification")
console.log(xhr.status);
console.log(xhr.responseText);
console.log(thrownError);
console.log('There is unknown error occurs. Please contact administrator for system verification');
}
});
}
})
А ниже приведен код remove_user.php

Код: Выделить всё

if($_POST['form_process'] == 'Remove User') {

$training_info = $c_eta->_get_user_info($_POST['id']);

if (count($training_info) > 0) {
if ($c_eta->_remove_user($_POST['id'])) {
$form_data['success'] = true;
} else {
$form_data['success'] = false;
$form_data['errors'] = "Unable to remove user";
}
echo json_encode($form_data);
return;
}
}
Ответ в формате JSON

Код: Выделить всё

{"success":true}
Пользователь удален, но я продолжаю получать сообщение «Ошибка процесса», «Произошла неизвестная ошибка. Пожалуйста, свяжитесь с администратором для проверки системы"..
Я попробовал добавить заголовок('Content-Type: application/json'); перед echo json_encode($form_data) ; как предложено в одном из сообщений здесь, однако это не работает.
ОБНОВЛЕНИЕ:
Ниже приведены значения журнала. которое отображалось на вкладке консоли браузера:

xhr.status = 200


xhr.responseText = 49{"success":true


thrownError = SyntaxError: Неожиданный символ без пробелов после JSON в позиции 4 (строка 2, столбец 3)

Я не уверен, где я ошибся в синтаксической ошибке, но если Я изменил тип данных: text он будет здесь:

Код: Выделить всё

if (!data.success) {
danger ('Process Error', data.errors)
}
с сообщением «Ошибка процесса», «Не определено».
ОБНОВЛЕНИЕ 2.0:
Я решил, что проблема связана с таблицей данных, в которой находится кнопка удаления. На основании ошибки xhr.responseText = 49{"success":true, упомянутой выше, 49 — это идентификатор данных, которые необходимо удалить. Он добавился к ответу json. Ниже приведен код моей кнопки удаления:

Код: Выделить всё

array(
'db' => 'id',
'dt' => 5,
'tbl_field' => 'eta.id',
'formatter' => function($d, $row) {
$id = $d;
$remove = '' .
'
[img]assets/img/delete.png[/img]
';
return $remove;
})

Предполагая, что возврат кнопки $remove приводит к добавлению идентификатора в ответ json, я также попытался изменить свой код следующим образом:

Код: Выделить всё

userDatatable.on('draw.dt', function() {
$('#user_datatable').find('.remove-btn').remove();
$('#user_datatable').find('tbody tr').each(function() {
var id = $(this).find('td:eq(5)').text();  //row id
var buttonHtml = '
[img]assets/img/delete.png[/img]
';
$(this).find('td:eq(5)').html(buttonHtml);
});
Однако идентификатор по-прежнему включен в ответ. Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/782 ... of-success
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»