[英]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.