Asp.Net / VB.Net webservice函数调用奇怪的行为

时间:2014-03-19 10:18:57

标签: javascript jquery asp.net webservice-client

我使用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的调用会失败,但是如果我调试它就成功了

1 个答案:

答案 0 :(得分:0)

很遗憾

return false;

到函数

function CallService() {
    Methodo_app.WebService1.HelloWorld("Yourself", onSuccess);                    
}