Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ошибка JSON parser'а в Javascript

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: При получении JSON из php возникает ошибка
maxapet
Отправлено: 03 Декабря, 2016 - 04:55:22
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Авг. 2016  


Помог: 0 раз(а)




Есть такой класс:
PHP:
скопировать код в буфер обмена
  1.  
  2. class AjaxResult {
  3.     // признак успеха
  4.     var $success;
  5.     // описание ошибки, если она есть
  6.     var $errorDescription;
  7.  
  8.     function __construct(){
  9.         $this->success = true;
  10.         $this->errorDescription = "";
  11.     }
  12.  
  13.     function AjaxResult($_success, $_errorDescription){
  14.         $this->success = $_success;
  15.         $this->errorDescription = $_errorDescription;
  16.     }
  17. }
  18.  

Использую его так:
PHP:
скопировать код в буфер обмена
  1.  
  2. catch(Exception $ex) {
  3.     $mysqli->rollback();
  4.     $erDescr = $ex->getMessage();
  5.     $result = new AjaxResult(false, $erDescr);
  6.     echo json_encode($result);
  7.     exit;
  8. }
  9.  

Выполняю вот такой запрос:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $.ajax({
  3.     type: _method,
  4.     url: url,
  5.     data: _data,
  6.     success: function (data){
  7.         var _data = $.getJSON(data);
  8.         if (_data.success === true)
  9.             alert("Данные успешно сохранены");
  10.         else {
  11.             alert("Ошибка при сохранении данных. Описание ошибки:\n" + _data.errorDescription);
  12.         }
  13.     },
  14.     error: function (jqxhr, status, errorMsg) {
  15.         alert("Ошибка при выполнении AJAX-запроса:\n" + "Статус: " + status + "\nОписание: " + errorMsg);
  16.     },
  17.     dataType: "json"
  18. })
  19.  

в Javascript получаю ошибку AJAX-запроса в errorMsg:

Unexpected token < in JSON at position 0

Понимаю, что первым символом должна быть открывающая прямая скобка, а вместо неё первой идёт угловая. Но в чём дело? Что делаю не так?

N.B. При выводе

Получаю такую строку:

{"success":true,"errorDescription":""}

Т.е. всё, вроде бы, правильно, и вообще нет никаких угловых скобок.
 
 Top
armancho7777777 Супермодератор
Отправлено: 03 Декабря, 2016 - 11:42:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




maxapet пишет:
var _data = $.getJSON(data);

Во-первых, - метод $.getJSON не для этого.
Во-вторых, - data уже является plain-объектом.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB