JQuery POST json 数据在后台怎么获取数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery POST json 数据在后台怎么获取数据?相关的知识,希望对你有一定的参考价值。

前台
$.ajax(
type: "POST",
contentType: "application/json",
dataType: "json",
url: URL,
data: "\"name\":\"bb\"",
success: function (msg)
,
error: function (msg)

);

后台ashx.cs
public void ProcessRequest(HttpContext context)


context.Response.ContentType = "application/json";
string name = context.Request.Params["name"];

这里拿到name为null,应该怎么拿?

$.ajax(
type: "POST",
contentType: "application/json",
dataType: "json",
url: URL,
data: "name=bb", // 你那样也行
success: function (msg)
,
error: function (msg)

);

后台ashx.cs
public void ProcessRequest(HttpContext context)


context.Response.ContentType = "application/json";
string name = context.Request["name"]; //POST提交的数据
追问

这样就不是JSON了啊,是URL方式了吧!!
string name = context.Request["name"]; //这样拿不到哦~~

追答

你传值到后台json和url有什么区别吗
jquery底层代码就是把json参数重新转成url的形式了。

真的 你要加强基本功

参考技术A

post的数据会提交一个字节流到对应的请求页,请求页通过读取字节流来获取post的数据!

示例C#中如何在后台获取post的数据:

System.IO.StreamReader sdr = new System.IO.StreamReader(Request.InputStream);
data = sdr.ReadToEnd();

参考技术B 你bb是变量还是值?
data: name:bb,//bb是变量
data: name:“bb”, //bb是值
或者
data: "name=bb",
data: "name="+bb,追问

//bb是值~
不行啊!!
我的意思是这样"name":"bb"二个都是值
你这里name是变量?

追答

你JS的基本功还不够啊
name:"bb",这是键值对象,name是键名,bb是值
如果前台JS的代码是
data:name:"bb"
那么 后台cs文件就是
string name = request.Form["name"]
如果要传两个值
那么data:name:"111",bb:"222"
后台取值就是
string name = request.Form["name"]
string name = request.Form["bb"]

参考技术C 你Response.Write有没?

用jquery的post方法提交数据需要servlet返回的数据类型是json的数据格式,应该怎么做??

我用就query的post的方法提交数据时,第四个参数设置成“json” 从服务器返回的数据有要求必须是什么格式的数据,jquery才能够解析成json数据格式,我是从服务器返回的一个string类型的数组,结果不行,还要用eval()解析一下才能是json数据格式的。

参考技术A 首先你要在servlet里在返回之前就要把返回的数据组装成json格式的字符串,在前台接收的数据就是json格式了,不需要再转的。我平时就是这样做的,没问题啊。追问

$.post()这个方法不是可以有四个参数吗!
$.post("请求地址",{传递参数},回调函数,返回的数据类型)
我在返回数据类型的地方写的“json”,然后从servlet返回的内容是["a","b","c"]这个样子的,可是不能正确解析成json数据格式的你说的那个貌似是$.ajax()这个方法吧。

追答

那是你返回内容的格式错了啊,json格式是这样的“key1”: “value1”, “key2”: “value2” 。

参考技术B 1.后台必须返回json类型的数据;你可以这样设置
response.setContentType(“text/x-json;charset=UTF-8”);
response.getWriter().write(text);
2.js调用这样写
$.post('url', p:'param', function(data)
alert(data);
,'json');//注意'json'必须小写

以上是关于JQuery POST json 数据在后台怎么获取数据?的主要内容,如果未能解决你的问题,请参考以下文章

Ajax获取到后台json数据,然后怎么取其中name的值赋值给li标签里面

如何利用jQuery post传递含特殊字符的数据

JQuery中的get和post怎么得到后台返回的值的

前台怎么接受后台的数据

如何使用ajax将json传入后台数据

在jquery中怎么获取数据库数据?