2016-03-03 120 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/