MooTools JSON请求

时间:2010-01-22 04:55:18

标签: javascript json mootools request

尝试使用MooTools Request.JSON获取一个非常简单的请求。在从头开始构建它之后,我从一个地方拿了一个例子,然后慢慢地将它削减到裸露的,最小的,然后把它放回我自己的页面。唯一改变的是url和元素ID,但无济于事。

任何帮助,想法,将不胜感激。

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。在我的页面或简化的示例页面中,我都可以获得仅在事件内发送的请求。那是为什么?

再次感谢


事实证明,问题是我不小心将同步的重复文件加载到我的浏览器中,因此(显然)无法执行任何服务器端。

非常感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

几个建议/问题:

  1. 您是否在网络浏览器的控制台中收到任何错误?您使用的是哪种网络浏览器?事实上,第三个警报根本没有触发,表明alert(result.name);正在抛出错误,在这种情况下,所有进一步的执行都将停止,并且浏览器的控制台上会出现错误。

  2. 当你说“改用onSuccess后杀死所有东西”时,你究竟是什么意思?进一步向下的代码(即上面代码片段中未包含的代码)是否永远不会执行?或者onSuccess从未开火?

  3. json.php与运行此脚本的页面位于同一目录中吗?尝试使用绝对网址json.phpurl: "json.php"替换/mydirectory/json.php中的http://www.mywebsite.com/mydirectory/json.php,看看是否有效。

  4. 如果有任何帮助,以下代码会生成一条警告“yay”(在本地服务器上运行; json.php是一个包含问题中PHP代码的文件):

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

答案 1 :(得分:1)

答案 2 :(得分:1)

这里的问题完全相同。 我通过解码JSON字符串来解决它,该字符串作为参数(而不是预期的对象)给出。

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

这是文档: http://mootools.net/docs/core/Utilities/JSON#JSON:decode