zoukankan      html  css  js  c++  java
  • jQuery post数据至ashx

    今天给大家分享一个小功能,在jQuery环境中,Post data to ashx进行数据交互。

    参考下面代码示例:

    $.ajax({
                         url: '<%= ResolveUrl("~/Handlers/xxx.ashx") %>',
                                dataType: "json",
                                type: "POST",
                                contentType: "application/json; charset=utf-8",
                                data: JSON.stringify({
                                    top: 10,
                                    term: request.term
                                }),
                                success: function (data) {
                                    //...
                                }
                            });
    Source Code


    jQuery的Post值是使用type: "POST",上传的数据类型为contentType: "application/json; charset=utf-8"。

    从代码示例中,它有2个参考需要上传,top,term。

    为了更好在ashx能接收,我们写一个model:


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    /// <summary>
    /// Summary description for Param
    /// </summary>
    namespace Insus.NET
    {
        public class Param
        {
            private int _top;
            public int Top
            {
                get { return _top; }
                set { _top = value; }
            }
    
    
            private string _term;
    
            public string Term
            {
                get { return _term; }
                set { _term = value; }
            }
        }
    }
    Source Code


    在ashx处理程序中,我们可以同下面这样接收Post过来的数据:

    public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "application/json";
                context.Response.ContentEncoding = Encoding.UTF8;
    
                Stream inputStream = context.Request.InputStream;
                Encoding encoding = context.Request.ContentEncoding;
                StreamReader streamReader = new StreamReader(inputStream, encoding);
    
                string strJson = streamReader.ReadToEnd();
    
                Param p = JsonConvert.DeserializeObject<Param>(strJson);
    
                int top = Convert.ToInt32(p.Top);
                string term = p.Term;
    
               
                //var result = ...
                //context.Response.Write(result.ToJson());
            }
    Source Code


    下面我们尝试在实际环境中,Post一个数据如 “1628”,在FireFox的firebug看到传送结果如下:


    在ashx中,接收到的结果如下:

    再进一步得到top的值:

    最后得到的是term的值:

  • 相关阅读:
    requests post一个json数据
    Beautiful Soup常见的解析器
    【bzoj5008】方师傅的房子 计算几何
    【bzoj4842】[Neerc2016]Delight for a Cat 线性规划与网络流
    【bzoj4764】弹飞大爷 LCT
    【bzoj2654】tree 二分+Kruscal
    [NOIP2017]逛公园 最短路+拓扑排序+dp
    【bzoj4165】矩阵 堆+STL-map
    【bzoj3717】[PA2014]Pakowanie 状压dp
    【bzoj1441】Min 扩展裴蜀定理
  • 原文地址:https://www.cnblogs.com/insus/p/5786221.html
Copyright © 2011-2022 走看看