要想實現JS調用WebService,可以按如下步驟實現(經過測試):
第一步:建立一個WebService
在此處我就建立了一個預設的web服務,並不做什麼修改,把主要集力放在怎麼實現JS調Web服務上面。
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
/// <summary>
///WebService 的摘要說明
/// </summary>
[WebService(Namespace ="http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService
{
public WebService()
{
//如果使用設計的組件,請取消注釋以下行
//InitializeComponent();
}
[WebMethod]
public string HelloWorld()
{
return"Hellow World";
}
}
第二步:建立一個頁面,實現JS調用Web服務
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function RequestWebService() {
//這是我們在第一步中建立的Web服務的地址
var URL ="http://localhost/YBWS/WebService.asmx";
//在這處我們拼接
var data;
data ='<?xml version="1.0" encoding="utf-8"?>';
data = data +'<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">';
data = data +'<soap12:Body>';
data = data +'<HelloWorld xmlns="http://tempuri.org/" />';
data = data +'</soap12:Body>';
data = data +'</soap12:Envelope>';
//建立非同步對象
var xmlhttp =new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.Open("POST", URL, false);
xmlhttp.SetRequestHeader("Content-Type", "application/soap+xml");
xmlhttp.Send(data);
document.getElementById("data").innerHTML = xmlhttp.responseText;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="One" type="button" value="JsCallWebService" onclick="RequestWebService()"/>
</div>
<div id="data">
</div>
</form>
</body>
</html>
點擊按鈕如下
原出處
http://www.cnblogs.com/puresoul/archive/2010/08/19/1803567.html