【.NET】Ajax和Ashx前后端通信 一

Ashx概述

Ashx文件是.NET众多web组件的一种,ashx是其扩展名,一个httpHandler接收并处理一个http请求。主要配合Ajax实现页面的无动态刷新。

Ashx和Aspx区别?

1、Ashx用于写WebHandler的,与Aspx类似,用于调用HttpHandler
2、省去了控件解析、及页面处理的过程
3、适合产生供浏览器处理的、不需要回发处理的数据格式

Ashx成员

1、两个函数成员ProcessRequest和IsReusable
2、ProcessRequest主要用来处理接受到的Http请求。
3、IsReusable返回一个bool类型,指示这个IHttpHandler实例是否可以重用,默认是否

Ashx中的HttpContext对象

一般处理程序类基础至IHttpHandler,依赖HttpContext对象,HttpContext类继承了IServiceProvider,关联了处理Http消息的几个常用对象Request(HttpRequest)、Response(HttpResponse)、Server(HttpServerUtility)、Session(HttpSessionState)

Cookie对象

Cookie是一小段文本信息,伴随着用户在请求和页面的Web服务器和浏览器之间传递。用户每次访问站点时,Web应用程序都可以读取Cookie包含的信息。
Cookie将信息保存在客户端
Asp.Net中包含两个Cookie集合
1、通过HttpRequest的Cookies集合访问的集合包含通过Cookie标头从客户端传送到服务器的Cookie。
2、通过HttpResponse的Cookies集合包含一些新的Cookie,这些Cookie在服务器上创建并以Set-Cookie标头的形式传输到客户端

Ashx中不可以重定向?

直接在Ashx里面重定向是不可以的,后台处理重定向后返回给前台的是重定向页面的html,而XmlHttpRequest接收到html后提示错误,而不是进行重定向。所以,直接在ashx后台重定向是不可以的,需要结合前台:服务器返回一个错误码和要重定向的URL,要求重定向,页面根据这个码和URL进行重定向。

HttpContext中的六个常用对象

1、Response:向浏览器输出信息
2、Request:从浏览器获取信息
3、Session:在服务器端保存一段信息
4、Cookie:在客户端保存一段信息
5、Application:为所有用户提供共享手段
6、Server : 获取服务器端信息

Response.Redirect的底层原理

服务器返回给客户端响应行加上响应码302,响应头Location设为重定向的路径

Response.ContentType

text/plain:无格式正文
text/html:以html形式输出(默认值)
text/xml:忽略xml头指定的编码格式,而采用us-ascii编码
application/json:序列化后的json格式字符串
image/GIF:GIF图形
application/x-cdf:cdf文件
当ajax访问ashx文件时,响应到前台的格式可以是默认的,然后前台通过js处理文本。

重定向的3种方法

1、Server.Transfer(“newPage.aspx”);
2、Server.Execute(“newPage.aspx”);
3、Response.Redirect(“newPage.aspx”);

Response.StatusCode的状态码

302是重定向产生的状态码,302Found是临时性重定向。

描述Html的Request请求和Response响应与Ajax和Ashx通信时的关系

Ashx处理Session

引用System.Web.SessionState,然后继承一个接口IRequireSessionState,可以使用Session存值,否则直接使用会报错,未将对象实例化。

Handler机制

你可能感兴趣的:(.Net)