ashx 怎样接收AngularJS POST过来的数据

ashx 怎样接收AngularJS POST过来的数据,第1张

你用google浏览器 post的时候会提交数据,然后你点击 你F12,点击NetWork,进行监控 发现你的URL了你就点开看看你的

POST数据,如果确实提交了。那你

用 string.IsNullOrEmpty(context.Request.QueryString["id"]) 来获取。

ASHX是一个HttpHandler

所以 如果楼主熟悉ASP_NET结构 可能会更加了解一些:

Page和Handler都需要一个上下文环境的 这个环境在CLR中为HttpContext 这个对象包含了WEB请求的Request Response等信息

只是Page类的HttpContext微软已经帮你做好了 所以你直接可以使用Page.Request之类的 其实这只是对HttpContext的一个引用

HttpHandler和Page不一样 要实现一个HttpHandler,必须通过IHttpHandler这个接口实现 因为这不是一个类 微软是不可能帮你先封装好Request Response之类的数据了

为了使开发人员可以使用Request之类的数据 微软为IHttpHandler提供了一个这样的方法:void ProcessRequest (HttpContext context);

所以你可以通过context.Request.Form["aaa"]这样的方法来获取参数

简单示例如下:

public class HttpHandlerA:IHttpHandler

{

public void ProcessRequest(HttpContext context)

{

string param = context.Request.Form["aaa"]

context.Response.ClearContent()

context.Response.ContentType="text/xml"

context.Response.ContentEncoding = Encoding.UTF8

context.Response.Cache.SetExpires(DateTime.Now)

context.Response.Write("<?xml version=\"1.0\" encoding=\"utf-8\" ?>")

context.Response.Write("<XML>")

context.Response.Write(param)

context.Response.Write("</XML>")

context.Response.End()

}

}

此外 HttpContext.Current.Request.Form["aaa"]应该也是有用的

希望对楼主有用

用JS 的escape函数转换成字符串,然后用jQuery+ashx的Ajax方式post给ashx文件,ashx里面接收到post的数据以后保存到数据库,各种html内容都能保存(我试过了,没有问题),然后读取的时候直接从数据库读取,不过读取完以后得用js的unescape函数解析一次,譬如你读取出来放到<div id="div1" runat="server"></div>里面,那你后台从数据库读取出来的内容直接用div1.innerHTML=公文内容,这时候再在页面写一段JS代码:

<script type="text/javascript">

var divobj = document.getElementsByID("<%=div1.ClientID %>")

divobj.innerHTML = unescape(divobj.innerHTML)

</script>

这样就能正常显示出你的公文了,绝对没有问题,我就是这样做的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10099626.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存