![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| SanychBY |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 4.6.2013 Репутация: нет Всего: нет |
Здравствуйте. Есть код
Но по странным причинам срабатывает функция ошибки хотя сам запрос успешно передается(я уверен в это, потому что происходит запись в базу данных) |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 3 Всего: 55 |
Запись в базу может происходить раньше той строки, на которой, например, скрипт вылетает с ошибкой 500. Попробуйте запустить его без ajax (создайте тестовую форму) и посмотрите, что выводится в ответ. -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| SanychBY |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 4.6.2013 Репутация: нет Всего: нет |
Я раньше использовал этот северный код изменился код AJAX так что PHP точно рабочий |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 3 Всего: 55 |
Скажите тогда уж хотя бы что именно за ошибка возникает.
-------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| SanychBY |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 4.6.2013 Репутация: нет Всего: нет |
Я писал уже ребятам на другом форуме http://www.cyberforum.ru/javascript-jquery/thread891072.html буду благодарен если Вы посмотрите |
|||
|
||||
| Arantir |
|
||||||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 3 Всего: 55 |
Там все верно говорят.
Это не json:
потому что корректный json с кириллицей должен выглядеть вот так:
Соответственно, ваш код падает уже на пробеле. И обработчика JSON.parse() не нужно, ибо вы же сами указали
JQuery автоматически парсит полученный объект и передает его в первый аргумент колбэка success. Это сообщение отредактировал(а) Arantir - 5.6.2013, 15:05 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
||||||
|
|||||||
| SanychBY |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 4.6.2013 Репутация: нет Всего: нет |
||||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 38 Всего: 386 |
Вот так json генерируется на стороне сервера специальной функцией json_encode.
Это сообщение отредактировал(а) ksnk - 5.6.2013, 16:15 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| SanychBY |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 4.6.2013 Репутация: нет Всего: нет |
||||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 38 Всего: 386 |
Можно.
Вообще, с моей точки зрения json слишком жесткий формат. Задумывалось это все явно в виде куска javascript, выдающего некую конструкцию. Со всеми языковыми тонкостями и вкусностями. А получилось как всегда. Вот так у меня обычно используется.
так можно вставлять внутрь html комментарии(я так от бедности вставляю отладочную информацию), не заботится об именах в двойных кавычках, и не в коем случае не иначе. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| SanychBY |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 4.6.2013 Репутация: нет Всего: нет |
Это я понял Это нет |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 38 Всего: 386 |
У сервера результат запрашивается не в виде json, а в виде обычного plain-html.
Сервер выдает json. Во всяком случае - пытается. Или грохается странным образом с текстовым сообщением об ошибке. Получаемый от сервера результат пытаемся "привести к json" простым eval'ом. Если он не приводится - выводим в лог сообщение об ошибке и выписываем само сообщение, чтобы не искать потом его в панели отладки Хрома. Обработка ведется в методе complete, так как этот метод обязательно сработает при таймауте, аборте и ошибке. Хотя код староват и у меня зреет ощущение, что сейчас все ошибки с jQuery, которые им обходились, вроде уже исправлены. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 3 Всего: 55 |
Можно, но Вы же не соблюдаете формат json в своем echo. Как минимум кириллица должна быть в виде "\u<код_символа>". Проблелы, возможно, убираются декодировщиком, но их тоже быть не должно. А у вас пробел после двоеточия. Строка вроде "{rez: "Успешно"}" может быть разве что объектом в коде самого JS-скрипта. Так что, в принципе, ее можно превратить в объект с помощью eval (выполняет текст, как код), как это показал ksnk. Однако eval надо использовать максимально осознанно. Если в data могут попасть данные, вводимые где-нибудь юзером (например, коммент к статье), то кто-то может сделать всем посетителям полный кавардак и грохнуть браузер бесконечным циклом, который просто вписал в коммент и который потом выполнился у всех, кто посмотрел страницу с комментом. Это вполне хорошее решение. И не намного сложнее чего-то типа "echo "{\"rez\": \"Успешно\"}";" -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| SanychBY |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 4.6.2013 Репутация: нет Всего: нет |
Ребята вот конечный код
И все равно срабатывает функция ошибки PHP
|
||||
|
|||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 3 Всего: 55 |
Правило №1: Не знаешь — не делай. С чего это вдруг json стал javascript-приложением? о_О Вообще-то json — это текст. Он может иметь MIME-тип text/plain. Или на худой конец text/html, так как это тоже, в принципе, текст. Грубо говоря, json-ом его делает только то, что функция JSON.parse с ним не вызовет ошибки. То есть суть лишь в формате, но текст есть текст. Отвлекитесь слегка от jQuery и поинтересуйтесь, как работает HTTP, JavaScript и AJAX. Чтобы меньше всякой алхимии было =) У json, конечно, есть MIME-тип application/json, но суть в том, что JS парсит его из текста, который получает с запроса. Это сообщение отредактировал(а) Arantir - 5.6.2013, 23:15 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Применение библиотек | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |