jQuery的ajax方法和post方法分别发送请求,在后台Servlet进行处理时结果是不一样的,比如用$.ajax方法发送请求时(data参数是一个JSON.stringify()处理后的字符串,而不是一个JSON对象),servlet里可以这样使用Gson来解析:
new Jsonparser().parse(request.getReader())
但此时是不可用request.getParam(key) 来取值的。
如果用$.post方法来发送请求(data参数是一个JSON对象,而不要再用JSON.stringify()处理为字符串了),结果恰恰相反。
在Chrome中调试发现, .ajax发送的请求显示在requestpayload下面,而使用 . a j a x 发 送 的 请 求 显 示 在 r e q u e s t p a y l o a d 下 面 , 而 使 用 .post方法发送的请求显示在form data下面。有什么区别呢?