![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Неактивный пользователь
Пол:
Регистрация: 21.02.2013
Сообщений: 1
Репутация: 0
|
Люди, помогите! Уже сколько мучаюсь, так и не пойму в чём дело.
Проблема вот в чём. Есть на сайте функционал, отправляющий некоторую 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 минуты В общем, я не знаю что случилось, но после прохода тестовой странице, сам код на сайте начал отрабатывать исправно. Всё работает отлично, как и должно, и я не знаю почему, потому что я ничего не менял. Это фаза луны так влияет или чистая всёлечащая энергия этого форума? ![]() |
|
|
|
| Реклама: | фруктовая корзина краснодар | билеты на ледовое шоу татьяны навки в питере стоимость - RedKassa.ru | интеграция битрикс24 calltouch | термостат pbfp-6 | Мебельный магазин: купить полочки на стену - Переходи на сайт! |
|
|
#2
|
|
Неактивный пользователь
Пол:
Регистрация: 28.11.2010
Сообщений: 53
Репутация: 13
|
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 20:09 |
| Навигация во фреймах (jQuery) | Vinni_incorp | Архив | 1 | 02.07.2011 11:41 |
| Бесплатный видеокурс по jQuery Денис Хомич | agapit1001 | Вeб Дизайн | 4 | 25.02.2011 15:57 |
| Создание простого AJAX сайта с помощью jQuery | Baddark | AJAX | 7 | 10.07.2010 16:06 |
|
|