2011-01-05 76 views
1

我写了一个WCF服务,并试图在ASPX页面的脚本中调用服务方法。WCF服务方法+来自javascript的同步调用

如:

<script language="javascript" type="text/javascript"> 

<!-- 

     function Test() { 
      **// The following call is an Async call. 
      tempuri.org.IService.GetData(1,OnRequestComplete, OnError, "");** 
     } 

     function OnRequestComplete(result, state) { 
      var textBox = $get("txtInput"); 
      textBox.value = result; 

     } 
     function OnError(result) { 
      var textBox = $get("txtInput"); 
      textBox.value = result; 
     } 

    //-->  
</script> 

我要的是能够调用服务方法 “同步”

如:VAR的结果= tempuri.org.IService.GetData(1);

这可能吗?

回答

3

我相信没有能力在Javascript中进行同步调用 - 在等待远程响应时AJAX库将始终返回。

你能解释一下你为什么要这样做吗?

编辑:

在回答,你应该使用这种方法:

  • 在为您的表单的onclick事件处理程序提交按钮:使web服务的验证电话,并立即返回false(这样表格不提交)。 这是一个好主意,向用户显示“验证”类型的消息,以便他们知道这里发生了什么。

  • 如果您收到有效回复,请使用document.form.submit();将表单提交给服务器。

  • 如果您收到无效回复或服务器错误,请向用户显示相应的消息。
+0

我想写一个自定义JavaScript函数的自定义验证和自定义脚本应该调用我的WCF服务“同步”。如果调用是异步的,则页面回传并且对wcf的请求没有完成! – 2011-01-05 17:45:22

+0

然后,你应该看看另一种做法。首先进行验证,然后根据结果提交表单。 – 2011-01-06 04:49:48

+0

验证的逻辑是在我的服务:) 所以页面应该等到我的服务返回验证结果。 – 2011-01-07 03:51:08