簡體   English   中英

如何使用Ajax調用JavaScript文件並在該JavaScript文件中使用邏輯

[英]How to call a JavaScript file using Ajax and use logic in that JavaScript file

有沒有辦法在Ajax調用中調用JavaScript文件並在該文件中使用邏輯?

例如,我正在使用Sencha Touch調用JSON文件,如下所示:

Ext.Ajax.request({
    url : 'resources/data/userdata.json',
        headers : {
            "Content-Type" : "application/json"
        },
        callback : function (options, success, response) {
            obj = JSON.parse(response.responseText);
            for (var i = 0; i < obj.length; i++) {
                console.log(obj[i].name);
            }
        }
    });

但是可以調用一個JavaScript文件,並根據發送的參數在該文件中做一些邏輯嗎?

我知道我可以用服務器文件(ASP.NET,PHP等)來做這件事......我只是想知道這是否可以使用JavaScript文件。

我嘗試調用window.onload函數或使用立即函數,但我仍然在文件中返回所有文本,而不僅僅是我想要返回的JSON ...:

(function(){
    return '[{ "name": "todd", "lastname":"vance"}, { "name": "joe", "lastname":"schmoe"}] ';
})();

您需要評估從Ajax獲得的結果, eval(myajaxresponse); 這可以調用其中的JavaScript代碼,也可以注冊函數,以便以后使用它們。 您可以在Stack Overflow問題中獲取更多信息調用從Ajax響應返回的JavaScript函數

您始終可以將函數的字符串表示形式分配給JSON中的鍵:

methods.json用法(基於您的代碼):

return '{method: ["(function(arg1, arg2){// do stuff})", "(function(arg1){// do other stuff})"]}';

...

var args = [arg1, arg2, argsetc];
Ext.Ajax.request({
    url: 'resources/data/userdata.json',
    headers: {
            "Content-Type": "application/json"
    },
    callback: function (options, success, response) {
        obj = JSON.parse(response.responseText);
        for (var i = 0; i < obj.method.length; i++) {
            var method = eval(obj.method[i]);
            method.apply(method, args); // Executes the method with arguments
        }
    }
});

還要確保在JSON中包含前面和后面的{} ,以便它將被解析並按預期工作。 ;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM