MooTools JSON запрос - PullRequest
       15

MooTools JSON запрос

0 голосов
/ 22 января 2010

Попытка получить очень простой запрос, работающий с MooTools Request.JSON. После безуспешного построения его с нуля, я взял пример откуда-то и медленно уменьшил его до минимума, а затем вернул его на свою страницу. Изменены только URL и идентификатор элемента, но безрезультатно.

Любая помощь, идеи, будет принята с благодарностью.

json.php

<?php
$result['name'] = 'yay';
header('Content-type: application/json'); 
echo json_encode($result);
?>

demo.js (фрагмент внутри window.addEvent ('domready', function () {)

 $(document.body).getElement('input[id=game_name]').addEvents({
  'keydown' : function(){
   alert('hmm'); //this fires
   var jsonRequest = new Request.JSON({
    url: "json.php", 
    onComplete: function(result){ //changing to onSuccess kills everything afterwards
     alert('result.name'); //this fires
     alert(result.name); //this does not fire
     alert('result.name'); //this does not fire
    }
   }).get();
  }
 }); 

PS. ни на моей странице, ни на урезанных примерах страниц я не могу получить запрос на отправку на domready, только внутри события. почему это?

еще раз спасибо


Как оказалось, проблема заключалась в том, что я случайно загрузил синхронизированный дубликат файла в свой браузер, который поэтому (очевидно) не смог выполнить что-либо на стороне сервера.

Большое спасибо за вашу помощь.

Ответы [ 3 ]

1 голос
/ 01 июля 2010
1 голос
/ 31 августа 2010

Точно такая же проблема здесь.Я решил это, расшифровав строку JSON, которая указана в качестве параметра (вместо ожидаемого объекта).

onSuccess: function(jsonString) {
    console.log(JSON.decode(jsonString));
}

Вот документация: http://mootools.net/docs/core/Utilities/JSON#JSON:decode

1 голос
/ 22 января 2010

Несколько предложений / вопросов:

  1. Получаете ли вы какие-либо ошибки в консоли вашего веб-браузера? Какой веб-браузер вы используете? Тот факт, что третье предупреждение вообще не срабатывает, говорит о том, что alert(result.name); выдает ошибку, и в этом случае все дальнейшее выполнение будет остановлено, и в консоли вашего браузера появится ошибка.

  2. Когда вы говорите «переход на onSuccess убивает все впоследствии», что именно вы имеете в виду? Код ниже (то есть код, который не включен в приведенный выше фрагмент кода) никогда не выполняется? Или onSuccess просто никогда не стреляет?

  3. Находится ли json.php в том же каталоге, что и страница, на которой выполняется этот скрипт? Попробуйте заменить json.php в url: "json.php" абсолютным URL (/mydirectory/json.php или http://www.mywebsite.com/mydirectory/json.php) и посмотрите, работает ли это.

Если это поможет, следующий код приводит к появлению предупреждения «yay» (работает на локальном сервере; json.php - файл, содержащий код PHP в вашем вопросе):

var jsonRequest = new Request.JSON({
    url: "json.php",
    onSuccess: function(result) {
        alert(result.name);
    }
}).get();
...