[英]How to call webservice in Javascript for Firefox 3.0
我在使用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>
您可以使用jQuery ajax調用,它們使調用Web服務變得容易。 看到這里: http : //encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.