asp.net 下ajax 調用webservice

來源:互聯網
上載者:User

自己在本機上建立了一個webservice

代碼:

using System;<br />using System.Web;<br />using System.Web.Services;<br />using System.Web.Services.Protocols;<br />using System.Data;<br />using System.Data.SqlClient;</p><p>[WebService(Namespace = "http://tempuri.org/")]<br />[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]<br />public class Service : System.Web.Services.WebService<br />{<br /> public Service () {</p><p> //如果使用設計的組件,請取消注釋以下行<br /> //InitializeComponent();<br /> }</p><p> [WebMethod]<br /> public DataSet GetProducts(decimal price) {<br /> SqlConnection con = new SqlConnection("server=210.42.151.89;database=Northwind;uid=sa;pwd=sa");<br /> con.Open();<br /> SqlCommand cmd = new SqlCommand("select ProductName,UnitPrice,ReorderLevel from Products where UnitPrice<@price",con);<br /> SqlParameter para = new SqlParameter("@price", SqlDbType.Decimal);<br /> para.Value = price;<br /> cmd.Parameters.Add(para);<br /> DataSet ds = new DataSet();<br /> SqlDataAdapter da = new SqlDataAdapter(cmd);<br /> da.Fill(ds,"Products");<br /> con.Close();<br /> return ds;<br /> }</p><p>}<br />

 

想用xmlhttprequest對象來實現ajax調用webservice:

前台代碼:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %></p><p><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></p><p><html xmlns="http://www.w3.org/1999/xhtml" ><br /><head runat="server"><br /> <title>無標題頁</title><br /> <mce:script type="text/javascript" language="javascript"><!--<br /> var xmlhttp=false;<br /> var objXmlDoc;<br /> var serviceresponse;<br />///////////////////////////////////////////////////////////////<br /> function getXml()<br /> { //建立xmlhttprequest對象<br /> try<br /> {<br /> xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");<br /> }<br /> catch(e)<br /> {<br /> try<br /> {<br /> xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");<br /> }<br /> catch(E)<br /> {<br /> xmlhttp=false;<br /> }<br /> }<br /> if(!xmlhttp && typeof XmlHttpRequest !='undefined')<br /> {<br /> xmlhttp=new XMLHttpRequest();<br /> }<br /> }</p><p>///////////////////////////////////////////////////////////////////<br /> function GetProducts()<br /> {<br /> getXml();<br /> var maxmount=document.getElementById("txtPrice").value;<br /> //構建SOAP信封<br />var strEnvelop="<?xml version=/"1.0/" encoding=/"utf-8/"?>/n"+<br />"<soap:Envelope xmlns:xsi=/"http://www.w3.org/2001/XMLSchema-instance/" xmlns:xsd=/"http://www.w3.org/2001/XMLSchema/" xmlns:soap=/"http://schemas.xmlsoap.org/soap/envelope//">/n"+<br />"<soap:Body>/n"+<br />"<GetProducts xmlns=/"http://tempuri.org/GetProducts/">/n"+<br />"<price>"+maxmount+"</price>/n"+<br />"</GetProducts>/n"+<br />"</soap:Body>/n"+<br />"</soap:Envelope>";<br /> xmlhttp.open("post","http://210.42.151.89/WebServiceForAjax/Service.asmx",false);<br /> xmlhttp.setRequestHeader("Content-Type","text/xml");<br /> xmlhttp.setRequestHeader("charset","gb2312");<br /> xmlhttp.setRequestHeader("SOAPAction","http://tempuri.org/GetProducts");<br /> xmlhttp.onreadystatechange=processResult;<br /> xmlhttp.send(strEnvelop);<br /> }<br />////////////////////////////////////////////////////////////<br /> function processResult()<br /> {<br /> if(xmlhttp.readyState==4 && xmlhttp.status==200)<br /> {<br /> objXmlDoc=new ActiveXObject("Msxml2.DOMDocument");//建立XML對象<br /> serviceresponse=xmlhttp.responseText;<br /> alert(serviceresponse);//這裡取出的資料都是一樣的,不知道為什麼????????<br /> objXmlDoc.loadXML(serviceresponse); //擷取XMl檔案內容<br /> if(objXmlDoc.parseError.errorCode!=0)<br /> {<br /> var xmlErr=objXmlDoc.parseError;<br /> alert("oops"+xmlErr.reason);<br /> }<br /> else<br /> {<br /> parseDataset();<br /> }<br /> }<br /> }<br />////////////////////////////////////////////////////////////<br /> function parseDataset()<br /> {<br /> var objNodelist=objXmlDoc.getElementsByTagName("Products ").length;<br /> alert(objNodelist);<br /> var stringout="";<br /> if(objNodelist>0)<br /> {<br /> stringout="<table><tr><td><b>ProductName</b></td><td><b>UnitPrice</b></td><td><b>ReorderLevel</b></td></tr>"<br /> }<br /> }</p><p>// --></mce:script><br /></head><br /><body><br /> <form id="form1" runat="server"><br /> <div><br /> Enter Max Price:<asp:TextBox runat="server" ID="txtPrice"></asp:TextBox><br /> <button id="submit" onclick="GetProducts();">Go!</button><br /> <div id="result"></div><br /> </div><br /> </form><br /></body><br /></html><br />

不知道哪裡錯了,搞了好幾天都沒有搞出來,看了一XML檔案,不管在介面上輸入什麼數字,都沒有取出資料,上面processResult()中

alert(serviceresponse);每次輸出的內容都一樣,不知道為什麼,肉悶啊,有沒有好心人告訴一下,小弟新手....

扣扣:591838169

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.