Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Ajax обработка запроса к /netcat/add.php и получение ответа в формате json

10.08.2012, 21:10
emerald-studio
Студия Эмеральд

Зарегистрирован:
2008-04-07
Сообщений: 12

Существует следующая задача - осуществить отправку данных формы через Ajax, а затем обработать ответ. Отправка данных происходит без проблем. Проблемы возникают при обработке результатов отправки.

Основной вопрос сейчас заключается в следующем: почему когда я указываю тип возвращаемых данных "json", функция auth_response даже не начинает выполняться? Стоит мне только поменять "json" на "html" - все прекрасно выполняется.

Пример

auth_response не выполняется

$.post("/netcat/add.php",$(this).serialize(),auth_response,"json");

auth_response выполняется (но мне нужен json)

$.post("/netcat/add.php",$(this).serialize(),auth_response,"html");
11.08.2012, 16:13
Asiat
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 576

Возможно, имеют значение возвращаемые с сервера заголовки Content-type, проверьте, при необходимости переназначьте.

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
13.08.2012, 11:48
emerald-studio
Студия Эмеральд

Зарегистрирован:
2008-04-07
Сообщений: 12

А можно по-подробнее? Или может быть дадите ссылочку на матчасть, если не сложно ? улыбка
13.08.2012, 15:14
Asiat
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 576

Ну, ссылочки конкретной под рукой не вспомню, а гуглить на тему
header Content-Type: text/html
и/или Content-Type: application/json

По умолчанию неткэт вернет вам text/html, но (если поможет) вы можете переназначить сами через PHP.

В большинстве случаев вообще скрипту по барабану, че там в этих заголовках, просто вы так конкретно написали но мне нужен json...

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
16.08.2012, 23:32
emerald-studio
Студия Эмеральд

Зарегистрирован:
2008-04-07
Сообщений: 12

Все-равно не получается.
Использовал следующий способ
Код:
jQuery.ajax ({
url: myurl,
type: "POST",
data: mydata,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(){
//
}
});

Вот тут ветка обсуждения

Результатов нет грустный . Может кто-нибудь знает как работать с /netcat/add.php с использованием AJAX ?

P.S. За основу я брал исходный код сайта netcat.ru .
17.08.2012, 15:46
Asiat
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 576

contentType в запросе вряд ли заставит сервер отправлять нужный header
Я нашел кусок конкретного кода, ниже приведу, но затык в том, что вы не даете никаких подробностей.
Непонятно, в чем вообще проблема, почему вам так нужен именно json, что за код возвращается в самом теле ответа...

header('Vary: Accept');
if (isset($_SERVER['HTTP_ACCEPT']) && (strpos($_SERVER['HTTP_ACCEPT'], 'application/json') !== false)) {
header('Content-type: application/json');
}
else {
header('Content-type: text/plain');
}
echo $json_text; //подразумевается, что в этой переменной само тело ответа
exit;

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
17.08.2012, 16:31
emerald-studio
Студия Эмеральд

Зарегистрирован:
2008-04-07
Сообщений: 12

Дело в том что надо получить ответ - добавилась запись или нет. После этого нужно обработчиком ответить на результат. Если запись добавилась - все ОК, если не добавилась - смотрим на ошибку и выдаем ответ (например некорректно заполнено поле или т.п.). Если брать тип данных html - возвращается полностью исходник страницы, который надо парсить. Хочется увидеть результаты безо всяких перепарсиваний страницы. Вот тут http://netcat.ru/nimages/js/netcat.min.8.js то что мне нужно, но на моем сайте это не работает. Тут точно также идет обращение к "/netcat/add.php", но тип данных указывается json и без проблем получается ответ.
18.08.2012, 07:15
Asiat
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 576

Что у вас возвращается в ответе сервера? само содержимое?

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
198 196 2012-08-18 07:15:22 12487
Описание проекта