我编写了一个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);
这可能吗?
答案 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