2016-03-03 123 views
1

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

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类。但在MooTools文档中,我没有找到这个Ajax()类。我试图通过替换我的Request.JSON()来使用Ajax(),但得到了“Ajax not defined”错误。什么是Ajax类,我们如何在MooTools中使用它?

+0

什么版本的MooTools的您使用的是? – Sergio

+0

我正在使用MooTools 1.6.0 –

+0

你如何使用代码?什么是“this.result”?是从你的代码的其他部分?你能展示更多的代码,以便我们了解你如何使用请求。 Request.JSON相当于jQuery.getJSON。 – Sergio

回答

0

我对这个任务有一个小函数。下面的代码

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'); 

希望它可以帮助作用。

+0

为什么要同步ajax?我会说这是一个_no no_,同步请求正在被弃用在网络上。只有在极少数情况下,使用同步方法优于异步方法。 – Sergio

+0

是的,你说得对。我会做一些改变。 –

1

以下是您正在寻找的功能的简单示例。基本上围绕Class包装一个函数......你也可以直接使用Class。

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/