【问题标题】:Cant pass data JQuery $.ajax to ashx handler无法将数据 JQuery $.ajax 传递给 ashx 处理程序
【发布时间】:2015-04-17 16:15:11
【问题描述】:

这是我的 AJAX 代码的一部分:

    $.ajax({
        type: "POST",
        url: "ajax.ashx?method=LoadCities",
        data: "{state_id:'" + state_id + "'}",
        contentType: "application/json;charset=utf-8",
        dataType: "json",
.
.
.

这是我的 ASHX 处理程序代码的一部分:

public class ajax : IHttpHandler {

    public void ProcessRequest (HttpContext context) {

        context.Response.ContentType = "application/json;charset=utf-8";

        string method = context.Request["method"];
        if (method == "LoadCities")
        {
            object ss = context.Request.Form["state_id"];
            context.Response.Write(LoadCities(ss));
        }
    }

我无法获得 "state_id",它始终是 null 我怎样才能获得“state_id”

【问题讨论】:

  • 你能在 chrome 开发者工具中检查 ajax 请求,看看表单数据是否正确包含?您应该会看到它出现在“网络”标签下
  • @rdans 我的 ajax 方法没有任何问题。但我无法在 ASHX 中传递参数并获取其值。
  • 您如何确定问题不在 ajax 请求端?你已经检查了吗?
  • @rdans 是的,我检查一下。

标签: c# asp.net ajax ashx


【解决方案1】:

您可以将其作为查询字符串传递,

$.ajax({
    type: "POST",
    url: "ajax.ashx?method=LoadCities&state_id=" + state_id,
    contentType: "application/json;charset=utf-8",
    dataType: "json",

。 . .

并在您的 .ashx 处理程序中获取您的 state_id,

string lsStateId = System.Convert.ToString(context.Request.QueryString["state_id"]);

【讨论】:

  • @Dxteritycontext.Request["state_id"]context.Request.QueryString["state_id"]有什么区别
  • context.Request 是您的表单中所有已发布数据(QueryStrings、输入控件等)的集合,而 context.Request.QueryString 是唯一查询字符串变量的集合。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 2021-06-29
  • 2016-06-23
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 2021-07-16
相关资源
最近更新 更多