gpt4 book ai didi

javascript - 从 javascript 调用网络服务

转载 作者:搜寻专家 更新时间:2023-11-01 05:26:01 25 4
gpt4 key购买 nike

我在 ASP.NET 中编写了 web 服务,它有这个地址:

http://localhost/RouteGen/Service.asmx

Web 服务有 web 方法 GetMessage ,它不接受任何参数并返回一个字符串。

Web 服务没问题,我从其他 ASP.NET 应用程序甚至 Android 应用程序调用它的方法。

服务器代码:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
[WebMethod]
public string GetMessage() {
return "Hello World";
}
}

现在我需要从 javascript 调用网络方法 GetMessage

html 页面:(此网页与Web服务代码无关,完全是另一个项目!你可以认为它是用win记事本写的)

...
<body id="body1" onload="initialize()" style="behavior:url(webservice.htc)">
</body>
...

在我调用的 initialize() 方法中:

...
service_init();
processResult();

还有这个函数:

function service_init()
{
body1.useService("http://localhost/RouteGen/Service.asmx?WSDL","TheService");
body1.TheService.callService("GetMessage");
}

function processResult(result)
{
alert(result);
}

我得到的结果是:

1)在 IE 中 processResult() 返回“undefined”

2)在 Chrome 和 FireFox 中它根本不起作用(没有出现 useService 后的简单警报)

问题出在哪里?如何让javascript在不同浏览器中正常调用web方法?

最佳答案

在 Aspx 部分,

添加一个ScriptManager标签如下,

        <asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference path="~/sample.asmx"/>
</Services>
</asp:ScriptManager>

在 JavaScript 中调用网络服务(sample.asmx)如下,

<script language="javascript" type="text/javascript">

function CalledOnAnyClientClickEvent()
{
var parameter1="dsfsfs";

NameSpace1.WebService1.HelloWorld(parameter1,OnSucess,OnFail);
}
function OnSuccess(asd)
{
alert(asd);//result will contain the return parameter from web service
}

function OnFail(asd)
{
alert(asd);
}
</script>

请参阅下面的 Asmx 部分 (sample.asmx),

          using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

using System.Web.Script.Serialization;
using System.Web.Script.Services;

namespace NameSpace1
{
/// <summary>
/// Summary description for WebService1
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]

// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[ScriptService]

public class WebService1 : System.Web.Services.WebService
{

[WebMethod]
public string HelloWorld(string par1)
{
//do your logic here

return "Hello World";
}
}
}

希望这有助于...

关于javascript - 从 javascript 调用网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6556334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com