之前我写了个ajax提交到ashx一般处理程序!那样就会又新建一个ashx页面!而也可以提交到当前页面,就不要创建一个新的ashx了!但是提交到本页面,相当于A标签提交,会做一些无用的操作!因为IsPostBack对ajax请求不起作用! 至于ajax提交到哪个页面好些!我也不是很清楚!敢兴趣的朋友可以去百度,google找下答案!
Default.aspx 页面
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Test._Default" %> <!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> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <script type="text/javascript"> function GetJson() { var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp = new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("您的浏览器不支持AJAX!"); return false; } } } xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4) { //alert(xmlHttp.responseText); var str = xmlHttp.responseText; alert(str); //$get("divShow").innerHTML = xmlHttp.responseText; //eval('var s = {"id":1}'); //eval("var s = "+xmlHttp.responseText+")"; // s = { "id": 1 }; try{ eval("var s = " + (str)); alert(unescape(s.Name)); }catch(e){ alert(e.message) } } } var data = "id=1"; xmlHttp.open("POST", "default.aspx?ajax=true", true); xmlHttp.send(data); } </script> <center> <div style="color:Red"> Test <input type="button" value="GetJson" onclick="GetJson();" /> <div id="divShow"></div> </div></center> </form> </body> </html>
Default.aspx后台
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Test { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; if (!string.IsNullOrEmpty(Request.QueryString["ajax"])) { string name = "hao'jiang\"fesd"; string json = "{Id:1,Name:\"" + name.Replace("'", "%27").Replace("\"", "%22") + "\",Sex:\"male\"}";//嘿,上面的可以使用: string json = "{Id:1,Name:\"" + Server.UrlEncode(name) + "\",Sex:\"male\"}"; Response.Write(json);/* * 注意:如果你ajax提交的页面为 aspx,那么你在Response.Write("")之后还需要 * Response.End();不然你把你需要的字符打印出来了,接着还会把页面的HTML打印出 * 来,以前我不知道,没有执行Response.End(),xmlhttprequest.responseText取出来 * 还需要截取字符才对啊! * 所以每次记得 调用Response.End();感兴趣的话,把Response.End();注释掉试一试! * */ Response.End();
//Response.End(); } } } }
Technorati 标签: ajax提交
记录学习点滴...,坚持每天让自己的技能增加1%,默默的坚持下去吧!:-)