ajax保存数据 ashx,jQuery的ajax方法传递json数据到Handler.ashx?解决方法

本文档介绍了如何使用jQuery的ajax方法将JSON数据发送到Handler.ashx,并在后端进行接收和解析。示例中展示了前端JavaScript函数get_org(),通过AJAX将JSON对象作为参数传递,以及Handler.ashx如何尝试通过Request.Form获取并转换这些参数。然而,在实际应用中,Handler未能正确接收到JSON数据,导致后续的反射调用方法时出现问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jQuery的ajax方法传递json数据到Handler.ashx?

jQuery的ajax方法把一段json参数值传到Handler.ashx里,在handler.ashx里怎么接收呢?

function get_org(id) {

var url = "/Handler/AjaxHandler.ashx";

var post_data = { id: id };//就是把这段传到handler.ashx里怎么接收?

$.ajax({

url: url,

type: "POST",

dataType: "json",

data: { action: "CallAjax", asm:"Framework.Web",className:"AjaxDemo", form: [post_data] },//我在这里通过form这个参数传递过去的,但是在接收的时候是个null

success: function (data) {

if (data != null && data != "") {

alert(data);

}

},

error: function (XMLHttpRequest, textStatus) {

alert("异常:" + XMLHttpRequest.reponseText + ";Status:" + textStatus);

}

});

}

我后端的handler.ashx代码

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

string message = string.Empty;

string action = context.Request.Form["method"];

string assemblyName = context.Request.Form["asm"];

string className = context.Request.Form["className"];

string param = context.Request.Form["form"];

if (string.IsNullOrEmpty(action))

{

message = "调用方法不能为空!";

}

if (string.IsNullOrEmpty(assemblyName))

{

message += "调用方法的程序集不能为空!";

}

if (string.IsNullOrEmpty(className))

{

message += "调用方法的类名不能为空!";

}

object p = JsonConvert.DeserializeObject(param); //我想在这里把传过来的json转换成一个对象

try

{

Assembly assembly = Assembly.Load(assemblyName);

Type type = assembly.GetType(assemblyName + "." + className);

object o = Activator.CreateInstance(type);

MethodInfo method = type.GetMethod(action);

method.Invoke(o, new object[] { JsonConvert.DeserializeObject(param) });//由于前面的param获取有问题,所以这里的反射调用方法时,没办法传递方法参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值