繁体   English   中英

可以为其他文件中的ajax调用的成功处理程序定义功能吗?

[英]Defining function for success-handler for ajax-call in different file possible?

我想要两个单独的文件,一个用于ajax调用(API,jquery),一个用于可视化数据的代码(jquery,knockoutjs)。 该API具有一个用于Ajax调用的函数,该函数几乎没有参数传递给该函数,包括成功和错误处理程序。 这样做的原因:我想在包含客户端代码的文件中定义成功处理程序(应该能够“单独”定义-取决于调用的服务)。

在API文件中:

  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);
    }
...

在client-js-file中:

    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调用的回调函数的参数?
  • 如果不可能-我如何设法“动态化”成功处理者?
  • 我那样做而又不好或那样做是完全错误的吗?

如果问题不好,请告诉我,需要补充一些信息。 这么久了

改变中

success: successHandler,

至:

  success: function(data, textStatus, jqXHR) { 
      successHandler(data, textStatus, jqXHR); 
   },

这将进行调用并传递这些参数。


我们在这里假设包含功能successHandler客户端js已加载并可用。

编辑/更新:

实际success: successHandler,通过了参数,因为它函数( duh me)-都一样,将其保留在这里,因为,也许可以从字面上解释发生了什么

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM