有没有办法调用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"}] ';
})();
最佳答案
您始终可以将函数的字符串表示形式分配给 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 中,以便它能够按预期进行解析和工作。 ;)
关于javascript - 如何使用 Ajax 调用 JavaScript 文件并使用该 JavaScript 文件中的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15793623/