无法从web服务中获取正确的javascript值

Can not get proper value in javascript from web service

本文关键字:javascript 获取 web 服务      更新时间:2023-09-26

这是我的问题:我有一个web服务方法,它返回简单的字符串:

namespace webStockService
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    // To allow this Web Service to be called from script, 
    // using ASP.NET AJAX, uncomment the following line. 
    [System.Web.Script.Services.ScriptService]
    public class StockService : System.Web.Services.WebService
    {
        [WebMethod]
        public string getChallenge()
        {
            //some codes
            return string;
        }
    }

我想用javascript:调用此服务

try
{
   var challenge = webStockService.StockService.getChallenge();
}
catch(e)
{
   alert(e.messsage);
}

我在调用中没有收到任何错误消息,但当我调试脚本时,挑战是undefined!!!

我已经用asmx方式测试了我的web服务方法,它正确地调用并返回字符串。

我还在我的html:中插入了scriptManager标签

<asp:ScriptManager ID="webStockService" runat="server">
            <Services>
                <asp:ServiceReference Path="StockService.asmx" />               
            </Services>
</asp:ScriptManager> 

任何帮助都将不胜感激。

此行必须更改

var challenge=webStockService.StockService.getChallenge()

请尝试以下

webStockService.StockService.getChallenge(SuccessCallBack);
function SuccessCallBack(returnedString)
{
  alert(returnedString);
}

必须传递回调javascript函数才能执行。对webservice的调用本质上是异步的,在代码中尝试时不会得到预期的行为。阅读Ajax会给你更好的想法。此处的详细答案