设为首页收藏本站

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 55|回复: 7

大佬帮我看看这个ajax的毛病

[复制链接]

3

主题

49

回帖

119

积分

注册会员

积分
119
发表于 2019-12-12 13:28:30 | 显示全部楼层 |阅读模式



后台servlet接收,设置了contentType为json的请求后台接收不到,另一个正常。


接下来传一个data1,这是个json 对象,还是设置了contentType为json的请求后台接收不到





再传一个data2=JSON.stringify(data1)
两个都接收不到。彻底凌乱,ajax不应该传递json字符串吗,怎么反过来,传递对象正确,string就错了
回复

使用道具 举报

2

主题

32

回帖

80

积分

注册会员

积分
80
发表于 2019-12-12 13:34:41 | 显示全部楼层
后台接收
String type = req.getParameter("type");
这种方式,按理说传递过来的对象是获取不到
回复

使用道具 举报

3

主题

49

回帖

119

积分

注册会员

积分
119
 楼主| 发表于 2019-12-12 13:35:11 | 显示全部楼层

BOC 发表于 2019-12-12 13:34

contentType 告诉你输入流的类型是json(而不是文件或者文本),用输入流去读取吧,单独的request不可能。 ...

谢谢,没正规学习,属于抄代码看代码查代码这样

用stringbuffer能读到输入流json 了,可另一个问题,在不设置contentype的情况下,后台req。getParameter为什么传对象的可以获取,反而stringify的不行
回复

使用道具 举报

3

主题

49

回帖

119

积分

注册会员

积分
119
 楼主| 发表于 2019-12-12 13:39:34 | 显示全部楼层
data传入的是json字符串,不是json对象,下面那个能用的,不是封装过了就是,已经将对象转为json字符串了
回复

使用道具 举报

1

主题

7

回帖

29

积分

新手上路

积分
29
发表于 2019-12-12 13:34:00 | 显示全部楼层

fosen 发表于 2019-12-12 13:43

data传入的是json字符串,不是json对象,下面那个能用的,不是封装过了就是,已经将对象转为json字符串了 ...

对,应该传递JSON.stringify(对象)这种字符串,可事实就是我传递data:对象后台可以用key获取到value,可传递data:string却获取不到value
回复

使用道具 举报

2

主题

32

回帖

80

积分

注册会员

积分
80
发表于 2019-12-12 13:43:45 | 显示全部楼层

BOC 发表于 2019-12-12 13:44

还有,ajax传过去的是
{"type":"josn","text","cmn"}
request 只需要获取 key 就能拿到value

{"type":"josn","text","cmn"}这种传递后台根据key能拿到value没问题

我的data1是一个对象,data2是stringify(data1)得到的
两个的alert显示如下




按理传递data2才应该能key-value获取,传递object不能直接key-value
赵蜇 发表于 2019-12-12 13:50

{"type":"josn","text","cmn"}这种传递后台根据key能拿到value没问题

我的data1是一个对象,data2是stri ...

这个是不是重新封装过了,我就是喜欢封装好的,用的时候直接丢个对象
回复

使用道具 举报

2

主题

32

回帖

80

积分

注册会员

积分
80
发表于 2019-12-12 13:44:45 | 显示全部楼层

BOC 发表于 2019-12-12 13:52

很明显,第一个后台可以获取到,应为它是json对象

第二个是字符串,后台获取不到的

谢谢啊,大概明白了。那么请问常用 的方式是什么

ajax传递对象,后台key-value获取

还是ajax contentType:json data:stringify(),后台再去读?似乎第一种简单,传递对象方便后面用gson等东西去转换成java的类
回复

使用道具 举报

3

主题

49

回帖

119

积分

注册会员

积分
119
 楼主| 发表于 2019-12-12 13:47:49 | 显示全部楼层
https://bbs.csdn.net/topics/390626876?page=1
网上有些教**的水平参差不齐,还是得有权威学习资料才成啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2026-3-26 07:12 , Processed in 0.012917 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表