【问题标题】:Ajax-Enabled WCF service : understanding Javascript parameters when calling a function启用 Ajax 的 WCF 服务:调用函数时了解 Javascript 参数
【发布时间】:2015-03-22 14:55:13
【问题描述】:

我在玩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 是在成功回调时调用的函数,但这两个空参数是什么?

【问题讨论】:

  • 这里的答案是否有助于它更有意义? stackoverflow.com/questions/14128185/…
  • 从上面评论的答案中得到了关注-最后两个参数分别参考onFailureuserContext
  • 我偶然发现了这个答案,这让我更加困惑。实际上,您会发现还有更多参数,但仍然没有说明它们的作用或如何使用它们,这正是我正在寻找的。我对 onFailure 有一个想法,但我不明白另一个。

标签: asp.net ajax web-services wcf


【解决方案1】:

最后两个参数分别参考onFailureUsercontext,用于下面提到的问题。

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

OnFailure : 顾名思义,如果由于网络问题、服务器错误、超时等原因导致 ajax 调用失败,将调用此处作为参数传递的函数。

UserContext:一般所有的ajax调用(我的意思是this[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

【讨论】:

  • 这是否意味着用户上下文允许您将变量传递到方法中,该变量通常不在范围内?
  • @rogerdeuce ,是的,它允许将变量/对象传递给回调函数。
【解决方案2】:

它们是成功、错误和用户上下文的回调。您可以在“访问 WCF Web 服务”部分阅读更多 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 2011-04-15
    相关资源
    最近更新 更多