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

赵蜇 大佬有话说 : 2019-12-12 13:28:30

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

https://upload.cc/i1/2019/12/12/JKrCvb.png

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

接下来传一个data1,这是个json 对象,还是设置了contentType为json的请求后台接收不到
https://upload.cc/i1/2019/12/12/P4Usab.png

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

BOC 大佬有话说 : 2019-12-12 13:34:41

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

赵蜇 大佬有话说 : 2019-12-12 13:35:11

后台接收
String type = req.getParameter("type");
这种方式,按理说传递过来的对象是获取不到

赵蜇 大佬有话说 : 2019-12-12 13:39:34

BOC 大佬有话说 : 2019-12-12 13:34
contentType 告诉你输入流的类型是json(而不是文件或者文本),用输入流去读取吧,单独的request不可能。 …

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

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

fosen 大佬有话说 : 2019-12-12 13:43:45

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

BOC 大佬有话说 : 2019-12-12 13:44:45

赵蜇 大佬有话说 : 2019-12-12 13:39
谢谢,没正规学习,属于抄代码看代码查代码这样

用stringbuffer能读到输入流json 了,可另一个问题,在 …

还有,ajax传过去的是
{"type":"josn","text","cmn"}
request 只需要获取 key 就能拿到value
你的stringify 也是json对象,那他也有key
后台同样用request 获取data1里面的key就能拿到

BOC 大佬有话说 : 2019-12-12 13:47:49

fosen 大佬有话说 : 2019-12-12 13:43
data传入的是json字符串,不是json对象,下面那个能用的,不是封装过了就是,已经将对象转为json字符串了 …

不要误导别人,是他自己获取方式有问题 var data1=JSON.stringify("{‘data’:’test’,’text’,’cnm’}");这个data1就是对象,放在data处 后台可以获取到。你的描述应该是 JSON.stringify 不能再转换json对象为json对象了,里面只能是字符串

赵蜇 大佬有话说 : 2019-12-12 13:48:14

fosen 大佬有话说 : 2019-12-12 13:43
data传入的是json字符串,不是json对象,下面那个能用的,不是封装过了就是,已经将对象转为json字符串了 …

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

BOC 大佬有话说 : 2019-12-12 13:50:32

赵蜇 大佬有话说 : 2019-12-12 13:48
对,应该传递JSON.stringify(对象)这种字符串,可事实就是我传递data:对象后台可以用key获取到value,可 …

js里面{xx:”,xx”} 这就是json对象,不是字符串 ;
"{xx:”,xx”} "这是字符串不是json对象
你先搞清楚二者的区别吧

赵蜇 大佬有话说 : 2019-12-12 13:50:51

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显示如下
https://upload.cc/i1/2019/12/12/2ps6Kb.png

按理传递data2才应该能key-value获取,传递object不能直接key-value

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论