启用Ajax的WCF服务:在调用函数时了解Javascript参数

时间:2015-01-23 14:32:07

标签: asp.net ajax web-services wcf

我正在玩Ajax-Enabled WCF services。到目前为止,我已经设法使用小型客户端应用程序创建和使用我的服务。然而,在阅读msdn网站上的“How-to”页面时,我遇到了这段代码:

function Button1_onclick() {
    var service = new SandwichServices.CostService();
    service.CostOfSandwiches(3, onSuccess, null, null);
}

function onSuccess(result) {
    alert(result);
}

我在调用函数时无法理解(甚至找不到有关)null, null参数的信息。 3是要传递给服务函数的参数,onSuccess是在成功回调时调用的函数,但那些2个空参数是什么?

2 个答案:

答案 0 :(得分:2)

最后两个参数分别针对下面提到的问题引用onFailureUsercontext

  
    

service.CostOfSandwiches(3,onSuccess,null,null);

  

OnFailure :顾名思义,如果ajax调用由于网络问题,服务器错误,超时等而失败,那么函数将在此处作为参数调用。

UserContext:通常所有ajax调用(我的意思是[WCF Ajax]过于依赖于ajax调用)使用此参数。因为,有一种主要方法可以调用$.ajax,在您的情况下,它是Button1_onclick。所以到目前为止,定义的所有变量在回调(成功或失败)中都不可用,因为这些变量在ajax调用完成时被回调,但是为了使这些调用知道先前定义的变量,上下文选项用于传递它们。

示例:

function Button1_onclick() {
    var service = new SandwichServices.CostService();
    var some_var = "someval"; // on successcallback if you are trying to access this, it will show error.
    service.CostOfSandwiches(3, onSuccess, null, null);
}

要在成功回调中使用此功能,您必须将其作为usercontext对象传递 - 例如service.CostOfSandwiches(3, onSuccess, null, some_var);

OnSuccessMethod -

function onSuccess(result,usctx,methodname)
{ 
      if (usctx == "someval")
      {
            alert(result);
      }
}

有关一般ajax意义上的上下文选项的更多信息,请参阅 - How to pass context in jquery ajax success callback function

答案 1 :(得分:0)

它们是成功,错误和userContext的回调。您可以在"访问WCF Web服务"下阅读更多here。部分。