我使用Visual Studio 2012创建了一个webapp。
我尝试创建一个Web服务并从javascript调用一个函数。
这是我的网络服务:
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class WebService1
Inherits System.Web.Services.WebService
<WebMethod()> _
public Function HelloWorld(ToSomeone As string ) As String
return "Hello World" + ToSomeone
End Function
End Class
这是对Web服务的调用
<button class="customButton" onclick="return CallService()">ProvaWebService</button>
<div id="outputDiv" style="border: 1px solid black; height: 50px;"></div>
<script type="text/javascript">
function CallService() {
Methodo_app.WebService1.HelloWorld("Yourself", onSuccess);
}
function onSuccess(result) {
alert(result)
var outDiv = document.getElementById("outputDiv");
outDiv.textContent = result;
}
</script>
我认为这一切都以正确的方式配置,因为我没有从chrome / firefox控制台获得错误,如果我调试脚本,我可以看到结果。但是在脚本结束后,结果将从页面中消失。
实际上我是这种情况:
调试:
我在div中看到警报和文本,但是在脚本结束后它们消失了
不调试:
我无法看到结果(为什么警报不会停止脚本?)
如果用此更改脚本(我只添加警报)
<script type="text/javascript">
function CallService() {
Methodo_app.WebService1.HelloWorld("Yourself", onSuccess);
alert("hello")
}
function onSuccess(result) {
alert(result)
var outDiv = document.getElementById("outputDiv");
outDiv.textContent = result;
}
</script>
我可以在div中看到警报(结果)和文本,但是在脚本结束后它们仍然会消失。
我不知道这是刷新问题还是同步问题
我添加了一个onFail
函数,我看看我是否运行对webservice的调用会失败,但是如果我调试它就成功了
答案 0 :(得分:0)
很遗憾
return false;
到函数
function CallService() {
Methodo_app.WebService1.HelloWorld("Yourself", onSuccess);
}