我想要两个单独的文件,一个用于ajax-calls(API,jquery),另一个用于可视化数据的代码(jquery,knockoutjs)。API有一个用于ajax-calls的函数,其中传递的参数很少,包括success-handler和error-handler。原因:我想在包含客户端代码的文件中定义成功处理程序(应该能够"单独"定义,具体取决于调用的服务)。
在API-file中:
var GET_ALL_WORDS = '/dict/rest/dictionary';//get
...
/** Parameters:
* GET/POST
* URL
* data: word record - json OR searchedWord, single word- String OR null
* successHandler - function handling returned data (json)
* error-handler - general handler for errors, defined in this file
**/
function dictRPCcall(method, url, data, successHandler, failedHandler) {
console.log("in dictRPCcall");
$.ajax({
type: method,
contentType: "application/json",
data: data,
url: url,
success: successHandler,
error: failedHandler,
dataType: "json"
});
}
//functions that will be called by client-side.
function getWordsRPCcall(successHandler) {
console.log("in WordsRPCcall")
dictRPCcall(GET, GET_ALL_WORDS, null, successHandler, failedREST);
console.log("afer ajax-call in WordsRPCcall")
}
function insertWordRecordRPCcall(wordRecord, successHandler) {
dictRPCcall(POST, INSERT_WORD_RECORD, wordRecord, successHandler, failedREST);
}
...
在客户端js文件中:
function successHandler(data, textStatus, jqXHR ){
//handling responded data from Server
console.log("successHandler " + "textstatus:" +textStatus + "data: " + data);
}
...calling getWordRPCcall and passing in the success-handler ....
问题:
- 是否可以在其他文件中定义成功处理程序ajax调用是
- 成功处理程序函数如何访问jqXHR对象其他参数返回并传递给ajax调用的回调函数
- 如果不可能的话——我该如何"动态化"成功处理程序
- 我这样尝试是不是完全错了,只是不好或类似的事情
如果问题不好,需要添加一些信息,请告诉我。再见,Meru
更改
success: successHandler,
至:
success: function(data, textStatus, jqXHR) {
successHandler(data, textStatus, jqXHR);
},
这使得调用并传递这些参数。
我们在这里假设包含函数successHandler
的客户端js已加载并可用。
编辑/更新:
实际上,success: successHandler,
通过了params,因为它是函数(duhme)-都一样,把它留在这里,也许可以更确切地解释正在发生的事情