我在使用 Firefox 调用 .Net Web 服务时遇到问题
客户。一个简单的例子对我来说就足够了。
服务器端代码是这样的:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
客户端.html代码:
Hello World Denemesi<br />
type="text" disabled="disabled" /></td>
value="Print" onclick="print()"> </td>
客户端.js代码:
var callObject;
function init(){
service.useService( "Service1.asmx?WSDL","Service");
callObject = service.createCallOptions();
callObject.async = false;
}
function print(){
callObject.funcName = "HelloWorld";
var oResult = service.Service.callService(callObject );
if( !oResult.error )
{
edtHelloWorld.value = oResult.value;
}
}
该 Web 服务可以在 IE 上运行,但不能在 Firefox 上运行,因为
webservice.htc(行为文件)不适用于 Firefox。我需要一个
javascript或类似的东西我可以使用而不是htc
文件...
如果您打算在 NET 中使用 Web 服务,我建议使用 ScriptService,
客户端 API 更简单,应该适用于大多数浏览器,请参阅下面的示例:
namespace XXX.Services
{
[System.Web.Script.Services.ScriptService()]
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class Service1 : System.Web.Services.WebService
{
[WebMethod] public string HelloWorld()
{
return "Hello World";
}
[WebMethod] public string Greet(string name)
{
return "Hello " + name;
}
}
}
客户端html代码:
Hello World Denemesi
<button onclick="test1()">print</button>
客户端.js代码:
<script>
function test1(){
XXX.Services.HelloWorld(function(result){
alert(result);//do something with the result
});
XXX.Services.Greet("John Cane",function(result){
alert(result);
});
}
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)