WCF服务方法+来自javascript的同步调用

时间:2011-01-05 12:00:05

标签: javascript ajax wcf service

我编写了一个WCF服务,并尝试在ASPX页面的脚本中调用服务方法。

例如:

<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 result = tempuri.org.IService.GetData(1);

这可能吗?

2 个答案:

答案 0 :(得分:3)

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

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

编辑:

作为回答,您应该使用此方法:

  • 在表单提交按钮的onclick事件处理程序中:进行webservice验证调用,并立即返回false(因此表单不提交)。 向用户显示“验证”类型的消息是个好主意,因此他们知道这里发生了什么。

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

  • 如果收到无效响应或服务器错误,则向用户显示相应的消息。

答案 1 :(得分:0)

如果您使用常规AJAX,则可以使您的呼叫同步。

请参阅:http://www.w3schools.com/Ajax/ajax_xmlhttprequest_send.asp 并向下滚动到“Asynchronous - True or False?”部分

这里我使用AJAX,但有时会挂起 www.DomainGuarder.com