【问题标题】:jQuery.getJSON equivalent in MooToolsMooTools 中的 jQuery.getJSON 等效项
【发布时间】:2016-03-03 11:55:31
【问题描述】:

MooTools 中是否有任何 jQuery.getJSON() 等价物?我有一个名为 data.json 的 json 文件,我想通过使用 MooTool 调用 data.json 文件来获取它的内容。可能吗?我尝试了Request.JSON() 方法,但它对我不起作用。以下是我的代码,

var json_req = new Request.JSON({
    url:'../public_html/data/data.json',
    method: 'get',
    secure: true,
    data:{
        json: true
    },
    onSuccess: function (res){
        this.result = res;          
    },
    onFailure: function(){
        this.result = "failed";
    }
}).send(); 

同样来自http://demos111.mootools.net/,我发现了一个名为 Ajax() 的 Ajax 类,他们在整个教程中都广泛使用该类。但是在 MooTools 文档中我没有找到这个 Ajax() 类。我尝试通过替换我的 Request.JSON() 来使用 Ajax(),但得到了“Ajax 未定义”错误。这个 Ajax 类是什么,我们如何在 MooTools 中使用它?

【问题讨论】:

  • 您使用的是什么版本的 MooTools?
  • 我正在使用 MooTools 1.6.0
  • 你是如何使用代码的? this.result 是什么?是来自您代码的其他部分吗?您能否显示更多代码,以便我们了解您如何使用请求。 Request.JSON 等价于 jQuery.getJSON。

标签: ajax mootools mootools-events


【解决方案1】:

这个适合我

window.addEvent('domready', function() {
    new Request.JSON({
        url: url,
        data: {'delay': 1},
        method: 'post',
        onSuccess: function(response) {
        var myJSON = JSON.encode(response)
          console.log(myJSON); 
        }
    }).send();
})

你可以在这里看到结果

http://jsfiddle.net/chetabahana/qbx9b5pm/

【讨论】:

    【解决方案2】:

    这是您正在关注的功能的一个简单示例。基本上是在类周围包装一个函数……你也可以直接使用类。

    function getJSON(url, callback) {
        new Request.JSON({
            url: url,
            onSuccess: callback
        }).send();
    }
    
    // and invoque it:
    getJSON('/echo/json/', function(json) {
        console.log(json);
    });
    

    您可以在此处实时查看:https://jsfiddle.net/w64vo2vm/

    【讨论】:

      【解决方案3】:

      我有一个小功能来完成这项任务。这是代码

      var configJson;
      
      function klak_readJson(fileurl) {
        var myRequest = new Request({
          url: fileurl,
          method: 'get',
          onRequest: function(){
            console.log('loading '+fileurl+'...');
          },
          onSuccess: function(responseText) {
            console.log('received bytes '+responseText.length);
            configJson=JSON.parse(myRequest.response.text);
          }
        });
        myRequest.send();
      }
      

      调用函数将JSON对象存入configJson

      klak_readJson('/js/test.json');
      

      希望对你有帮助。

      【讨论】:

      • 为什么要同步ajax?我会说这是一个no no,同步请求正在网络上被弃用。只有在极少数情况下,使用同步方法优于异步方法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 2010-09-15
      • 1970-01-01
      • 2013-12-16
      • 2018-06-25
      • 2015-07-09
      • 2017-10-24
      相关资源
      最近更新 更多