.net - AJAX 请求数据不存在于 HttpContext 对象中

标签 .net ajax httpcontext

我正在尝试将一些数据发送到通用处理程序,并使用 jQuery.ajax() 将这些信息传递回响应中。由于某种原因,当我根据我发现的另一个问题的答案( .NET Simple Form Submit via AJAX and JQUERY )发送数据时, context.Request 对象中没有任何内容。

这是我的 ajax 调用:

function retrieveStats(monster) {
    $.ajax({
        type: "POST",
        url: "MonsterRequests.ashx",
        data: { "monster": monster },
        contentType: "application/json; charset=utf-8",
        success: function (msg) {
            alert(msg.d);
        },
        error: function (jqXhr, status, errorThrown) {
            alert(errorThrown);
        }
    });
}

这是我的处理程序的代码:

public class MonsterRequests : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
        string monsterName = context.Request["monster"];

        context.Response.ContentType = "text/plain";
        context.Response.Write("{\"d\":\"" + monsterName + "\"}");
    }

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

我可以通过访问 context.Request.InputStream 并通过 StreamReader 读取来获取信息,但我很好奇为什么我不能直接从请求中获取信息。

任何有关此问题的帮助将不胜感激。

最佳答案

删除内容类型,因为您没有发送 json。试试这个。

var monster = "value";
    $.ajax({
        type: "POST",
        url: "MyHandler.ashx",
        data: { monster: monster },
        success: function(msg) {
            alert(msg.d);
        },
        error: function(jqXhr, status, errorThrown) {
            alert(errorThrown);
        }
    });

关于.net - AJAX 请求数据不存在于 HttpContext 对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20510027/

相关文章:

jquery - Ajax 重定向处理

php - 使用 jQuery、Ajax 和 PHP 的投票系统只能在本地服务器上运行

c# - 从数据层访问 HttpContext 和 User Identity

c# - 适用于 LinkedIn 的 C# SDK

ASP.NET使用Ajax给图片添加滚动条

javascript - 最小 SharePoint 页面中 window.open 后的 session 为空

asp.net-mvc - 如何从 ASP.NET MVC 1 中的 HttpContextBase 获取 HttpContext 对象?

c# - 无法在表单中找到 {Microsoft.VisualBasic.PowerPacks.RectangleShape} 控件

javascript - 关于从 ASP .NET 用户控件迁移到 .NET 3.5 母版页技术的问题

.net - SQL Azure 数据同步 - 如何访问数据同步 API?