js调用WebService(复杂对象传入)[原创]
原創地址:http://longtianyu1.blog.163.com/blog/static/998196520111019315663/
實現原理,通過POST SOAP 1.2協議內容,實現復雜對象的傳入
POST /Main.asmx HTTP/1.1
Host: localhost
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<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">
? <soap12:Body>
??? <HelloWorld xmlns="http://tempuri.org/">
????? <user>
??????? <UserID>int</UserID>
??????? <UserName>string</UserName>
????? </user>
??? </HelloWorld>
? </soap12:Body>
</soap12:Envelope>
WebService User.cs 傳入對象
??? public class User
??? {
??????? public int UserID { get; set; }
??????? public string UserName { get; set; }
??? }
WebService Main.asmx.cs 服務
??? [WebService(Namespace = "http://tempuri.org/")]
??? [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
??? [System.ComponentModel.ToolboxItem(false)]
??? // 若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消對下行的注釋。
??? [System.Web.Script.Services.ScriptService]
??? public class Main : System.Web.Services.WebService
??? {
??????? [WebMethod]
??????? public string HelloWorld(User user)
??????? {
??????????? return "Hello World" + user.UserName;
??????? }
??? }
HTML頁
<!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>
??? <title></title>
??? <script src="_Script/jquery-1.6.4.js" type="text/javascript"></script>
??? <script type="text/javascript">
??????? function makeSOAP(content) {
??????????? return '<?xml version="1.0" encoding="utf-8"?>'
??????????????? + '<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">'
??????????????? + '? <soap12:Body>'
??????????????? + content
??????????????? + '? </soap12:Body>'
??????????????? + '</soap12:Envelope>';
??????? }
??????? $(function () {
??????????? $.ajax(
??????????? { url: "/Main.asmx",
??????????????? type: "POST",
??????????????? contentType: "application/soap+xml; charset=utf-8",
??????????????? data: makeSOAP('<HelloWorld xmlns="http://tempuri.org/"><user>??????? <UserID>2</UserID>??????? <UserName>string</UserName>????? </user>??? </HelloWorld>'),
??????????????? success: function (xml) {
??????????????????? $("#info").text($(xml).find("HelloWorldResult").text())
??????????????? }
??????????? });
??????? });
??? </script>
</head>
<body>
??? <div id="info"></div>
</body>
</html>
總結
以上是生活随笔為你收集整理的js调用WebService(复杂对象传入)[原创]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web前端、个人简历模板、个人简历_优秀
- 下一篇: 深度学习笔记(十一)--读李宏毅《1天搞