当前位置:  开发笔记 > 后端 > 正文

ASP.NET - 将JSON从jQuery传递到ASHX

如何解决《ASP.NET-将JSON从jQuery传递到ASHX》经验,为你挑选了2个好方法。

我正在尝试将JSON从jQuery传递到.ASHX文件.下面的jQuery示例:

$.ajax({
      type: "POST",
      url: "/test.ashx",
      data: "{'file':'dave', 'type':'ward'}",
      contentType: "application/json; charset=utf-8",
      dataType: "json",      
    });

如何在.ASHX文件中检索JSON数据?我有方法:

public void ProcessRequest(HttpContext context)

但我在请求中找不到JSON值.



1> Claudio Redi..:

我知道这太旧了,但只是为了纪录,我想加5美分

您可以使用此方法读取服务器上的JSON对象

string json = new StreamReader(context.Request.InputStream).ReadToEnd();



2> Andre..:

以下解决方案适合我:

客户端:

        $.ajax({
            type: "POST",
            url: "handler.ashx",
            data: { firstName: 'stack', lastName: 'overflow' },
            // DO NOT SET CONTENT TYPE to json
            // contentType: "application/json; charset=utf-8", 
            // DataType needs to stay, otherwise the response object
            // will be treated as a single string
            dataType: "json",
            success: function (response) {
                alert(response.d);
            }
        });

服务器端.ashx

    using System;
    using System.Web;
    using Newtonsoft.Json;

    public class Handler : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            string myName = context.Request.Form["firstName"];

            // simulate Microsoft XSS protection
            var wrapper = new { d = myName };
            context.Response.Write(JsonConvert.SerializeObject(wrapper));
        }

        public bool IsReusable
        {
           get
           {
                return false;
           }
        }
    }

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有