Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ajax и Json, Как правильно указать callback функцию 
:(
    Опции темы
JamesMorgan
Дата 30.1.2012, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 11.7.2011

Репутация: нет
Всего: 1



Привет всем, помогите решить одну проблему, в общем задачая такая отравить запрос с помощью ajax на сервер и получить json ответ, дело  в том что обязательно надо указать параметры:

Цитата

cat => id - параметр каталога
fcn => name - название callback функции в которой будет передам json ответ


Когда я формирую запрос отравки то ответа не получаю, данные уходят но нечего не происходит:
Код

<script>   
function _next(form_id) {
new Ajax.Request('http://server.com//get.do?sc=js',
  {
  method:'get',
  parameters: $(form_id).serialize(true),
  onSuccess: function(transport, json){
      alert(json ? Object.inspect(json) : "no JSON object");
    } 
  });

} 
</script>
    <form method="post" action="">

        <p>
            <label>Каталог</label>
            <input id="cat" name="cat"type="text" value=""/>
        </p>
            <input type="hidden" name="fcn" value="fcn"/>
        </p>
        <p class="submit">
            <input type="submit" onclick="_next(this.form); return false;"/>
        </p>
    </form>
</body>
</html>


Когда данные отправляю нечего не получаю, а вот если я напрямую передам параметры:


То получаю ответ который мне и нужен:
Цитата

fcn({"cat":"... .. .. ..."});       

Вопрос как мне в ajax описать название функции ???? потому что без указания callback функции ответа нет. Помогите кто чем может, использую Prototype.
PM MAIL   Вверх
$дмитрий
Дата 30.1.2012, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 2
Всего: 45



Цитата

Когда данные отправляю нечего не получаю

Через отладчик(напиример FireBug) нужно смотреть какой сформировался запрос
Предпологаю что параметр sc тоже следует передать через форму(пропиши его в input hidden)

Цитата

Вопрос как мне в ajax описать название функции

Вопрос не понятен
PM MAIL   Вверх
JamesMorgan
Дата 30.1.2012, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 11.7.2011

Репутация: нет
Всего: 1



Посмотрел, данные передаются но не туда куда надо, Ajax не срабатывает проверил так:
Код

    <form method="get" action="http://server.com//get.do">
        <p>
            <label>Каталог</label>
            <input type="hidden" name="sc" value="js"/>
            <input id="cat" name="cat"type="text" value=""/>
        </p>
            <input type="hidden" name="fcn" value="fcn"/>
        </p>
        <p class="submit">
            <input type="submit" onclick="_next(this.form); return false;"/>
        </p>
    </form>


Перепроверил с Ajax и FireBug показывает что данные улетели но ответа нет
FireBug показывает:


Но нечего не пиходит, вообще пустота.
Цитата

Вопрос не понятен 

Дело в том что в параметре fcn должна находится имя функции callback я так понимаю что без нее ответа не будет, только как мне ее обработать?

Понять не могу почему ajax не хочет ее обрабатывать  smile 

Это сообщение отредактировал(а) JamesMorgan - 30.1.2012, 17:01
PM MAIL   Вверх
JamesMorgan
Дата 1.2.2012, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 11.7.2011

Репутация: нет
Всего: 1



Посмотрел через FireBug почему то данные не уходят а точнее не выполняется GET запрос, пишет вместо GET вот это OPTIONS. Что не так то делаю????

Код

<script>   
function _next(form_id) {
new Ajax.Request('http://server.com/get.do?sc=js',
  {
    method:'get',
    requestHeaders: {Accept: 'application/json'},
    parameters: $(form_id).serialize(),
    onSuccess: function(transport) {
      var response = transport.responseText || "no response text";
      alert("Success! \n\n" + response);
  });
} 
</script>
    <form method="post" action="">
        <p>
            <label>Каталог</label>
            <input id="cat" name="cat"type="text" value=""/>
        </p>
            <input type="hidden" name="fcn" value="fcn"/>
        </p>
        <p class="submit">
            <input type="submit" onclick="_next(this.form); return false;"/>
        </p>
    </form>
</body>
</html>


Фаер баг говорит 
Цитата
OPTIONS get.do?sc=js&cat=book&fcn=fcn
 а если напрямую то тогда пишет
 
Цитата
GET get.do?sc=js&cat=book&fcn=fcn


Что не так я делаю??????? smile  smile 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0416 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.