利用jQuery传送json格式的字符串,后端用ashx文件来接收
在Default.aspx里面,我们会透过javascript建立两个物件,分别有Name和Age的属性,再透过Array的方式,将这两个物件塞到Array里面去。使用Ajax内建的$.ajax API,我们可以把url,type,data,sucess等几个属性先设定好,其中要注意到当我们想透过json格式来传递资料的时候,我们可以用JSON.stringify()的方法来把想要传送的阵列资料先转换成json格式。
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="json.aspx.cs" Inherits="json" %> 2 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4 <html xmlns="http://www.w3.org/1999/xhtml"> 5 <head runat="server"> 6 <title></title> 7 <script type="text/ecmascript" src="SiteFiles/menu/js/jquery-1.9.1.min.js"></script> 8 <script type="text/javascript"> 9 10 var data='{ "MenuID": "02001", "MenuName": "香炸黄花鱼", "MenuPrice": "28.00", "OriginalPrice": "", "MenuUnit": "份", "ClassID": "02", "OrderNum": "1" }' 11 $.ajax({ 12 type: "post", 13 url: "orderJSON.ashx", 14 datatype: "html", 15 data: data, 16 success: function (data) { 17 alert(data); 18 } 19 }); 20 </script> 21 </head> 22 <body> 23 <form id="form1" runat="server"> 24 <div> 25 </div> 26 </form> 27 </body> 28 </html>
<%@ WebHandler Language="C#" Class="orderJSON" %> using System; using System.Web; using System.IO; public class orderJSON : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; string strJSON = string.Empty; using (StreamReader reader = new StreamReader(context.Request.InputStream)) { strJSON = reader.ReadToEnd(); } context.Response.Write(strJSON); } public bool IsReusable { get { return false; } } }