【发布时间】:2011-07-02 10:04:53
【问题描述】:
我在 ASP.NET 中编写了 Web 服务,它有这个地址:
http://localhost/RouteGen/Service.asmx
Web Service 有 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 调用 web 方法 GetMessage。
html页面: (此网页与web service代码无关,完全是另一个项目!可以认为是用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() 返回“未定义”
2)在 Chrome 和 FireFox 中它根本不起作用(useService 没有出现后的简单警报)
问题出在哪里?如何让javascript从不同浏览器正常调用web方法?
【问题讨论】:
-
我不知道为什么有人在没有任何评论的情况下投了反对票。无论如何,我的答案都可以完美运行...
标签: javascript asp.net web-services browser