Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
21.02.2013, 16:13 | #1 |
Неактивный пользователь
Пол: Регистрация: 21.02.2013
Сообщений: 1
Репутация: 0
|
jQuery ajax не обрабатывает ответ от сервера
Люди, помогите! Уже сколько мучаюсь, так и не пойму в чём дело.
Проблема вот в чём. Есть на сайте функционал, отправляющий некоторую json структуру и возвращающую же её в ответ. Используется библиотека jquery-1.9.1.min.js. Функция, которая вызывается для этого: Код:
function sendFeedback() { $.ajax({ type: "POST", url: "feedback.php", dataType: "json", data: {name: $("#name").val(), email: $("#email").val(), text: $("#text").val(), capcha: $("#capcha").val()}, success: function(result, ajaxObj) { alert('OK'); }, error: function(ajaxObj, message, exceptionObj){ alert(exceptionObj); }, complete: function(ajaxObj){ alert('finish'); } }).done(function(result){ $("#answer").html(result.answer); }); } Код:
<?php // Перепробовал различные вариации заголовков, в том числе и без них, как было раньше header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); header("Content-Type: application/json"); header("Accept-Charset: utf-8"); echo '{"isok":"1","answer":"2"}'; // Это для примера ответ ?> Чтобы добиться ответа, я подключил в замен сжатой библиотеке нормальную с читабельным кодом jquery-1.9.1.js. Какое же было, что теперь и firefox перестал нормально обрабатывать код! Точнее, он его нормально обрабатывает в половине случаев. Вообще без понятия в чём дело. Хотя сейчас firefox стабильно всё обрабатывает. Сервер вроде бы возвращает всё нормально. Если просмотреть что отправляется, а что принимается, то в firebug в firefox-е, в случае обработки запроса с ошибкой, выводит в консоли строчку, выделенную красным цветом (без понятия что это выделение означает): Код:
POST http://www.site.com/feedback.php Заголовки ответа Accept-Charset utf-8 Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection keep-alive Content-Type application/json Date Tue, 19 Feb 2013 21:46:49 GMT Expires Thu, 19 Nov 1981 08:52:00 GMT Pragma no-cache Server nginx Set-Cookie PHPSESSID=746a0fa3f9ef7055f006ef3b4033c8a2; path=/ Transfer-Encoding chunked Vary Host X-Powered-By PHP/5.2.17 Заголовки запроса Accept */* Accept-Encoding gzip, deflate Accept-Language ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Content-Length 26 Content-Type application/x-www-form-urlencoded; charset=UTF-8 Host www.site.com Origin http://site.com Referer http://site.com/ User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0 Dragonfly же из Opera сообщает следущее: Код:
POST http://www.site.com/feedback.php 200 OK Запрос POST /feedback.php HTTP/1.1 User-Agent: Opera/9.80 (X11; Linux x86_64; U; ru) Presto/2.10.289 Version/12.02 Host: www.site.com Accept-Language: ru-RU,ru;q=0.9,en;q=0.8 Accept-Encoding: gzip, deflate Referer: http://site.com/ Connection: Keep-Alive Content-Length: 26 Accept: application/json, text/javascript, */*; q=0.01 Origin: http://site.com Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Имя Значение name email text capcha Ответ HTTP/1.1 200 OK Server: nginx Date: Tue, 19 Feb 2013 22:07:38 GMT Content-Type: application/json Connection: keep-alive Vary: Host X-Powered-By: PHP/5.2.17 Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Accept-Charset: utf-8 Set-Cookie: PHPSESSID=46662d5b899e76b0fa17300a2645e17b; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT {"isok":"1","answer":"2"} Абсолютно всё тоже самое, если не обёртывать всё в JSON а просто возвращать какой нить текст. В чём может быть дело? Добавлено через 13 минут Ох, кажется поспешил с вопросом. Только что узнал, что на тестовой странице сайта, где чисто висит одна форма без ничего больше, всё работает идеально. Значит, что-то из содержимого на самом сайте мешает работе скрипта. Придётся искать. Добавлено через 24 минуты В общем, я не знаю что случилось, но после прохода тестовой странице, сам код на сайте начал отрабатывать исправно. Всё работает отлично, как и должно, и я не знаю почему, потому что я ничего не менял. Это фаза луны так влияет или чистая всёлечащая энергия этого форума? |
Реклама: | Рекомендуем супермаркет KNS.ru - компьютер маленький системный блок - билеты на футбол в подарок каждому покупателю | Интернет-магазин КНС Нева - Asus ROG купить - корпоративные поставки в Санкт-Петербурге. | купить выставочный образец барнхауса | Рекомендуем гипермаркет КНС - купить цветной мфу - Подарок каждому покупателю! | Medods и Roistat |
25.02.2013, 19:28 | #2 |
Неактивный пользователь
Пол: Регистрация: 28.11.2010
Сообщений: 53
Репутация: 13
|
Re: jQuery ajax не обрабатывает ответ от сервера
http://php.net/manual/ru/function.json-encode.php
echo json_encode(array('isok' => 1, 'answer' => 2)); Насчет заголовков: обязательный здесь только header("Content-Type: application/json"); У меня без остальных всегда все работает (utf-8 по умолчанию) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Переход с jQuery 1.2.6 на jQuery 1.4 или 1.5 | Vinni_incorp | Программирование | 1 | 16.03.2012 10:26 |
AJAX загрузка с сервера | idserg | AJAX | 0 | 26.07.2011 21:09 |
Навигация во фреймах (jQuery) | Vinni_incorp | Архив | 1 | 02.07.2011 12:41 |
Бесплатный видеокурс по jQuery Денис Хомич | agapit1001 | Вeб Дизайн | 4 | 25.02.2011 15:57 |
Создание простого AJAX сайта с помощью jQuery | Baddark | AJAX | 7 | 10.07.2010 17:06 |
|
|