0

因此,在我的 Angular 应用程序中,我尝试使用 JSP 在服务器端处理保存。我遇到的问题是,当使用 Angular 的 $save 方法时,它将对象数据(我正在保存的对象)作为 JSON 对象发送,但不是以我习惯的任何方式发送。该对象无法通过 request.getParameter() 访问,并且在 firebug 中查看请求时,我可以看到它不发送 JSON 或具有任何参数。相反,它在“POST”部分发送 json 对象。我不太明白这里发生了什么。???

所以这是我到目前为止所知道的:

Angular 中帖子的默认 contentType 是“application/json”,因此如果您将其更改为“application/x-www-form-urlencoded;charset=utf-8”,您至少可以使用获取 json 对象的参数request.getParameter() (如果您还更改了 json 对象的传输方式)

这首先不是真正的问题,因为如果我使用 jQuery.ajax() 发出请求并将 contentType 设置为“application/json”,然后将 json 对象作为数据传递,那么我仍然会得到 json 对象属性作为参数,所以我可以使用 request.getParameter(),你只是没有在 url 中获取查询字符串。

SOOO,我的问题是:

1) Angular 发送数据的方式到底是怎么回事

2) 有什么方法可以在仍然能够使用 $resource $save 函数的同时更改它(更改 $http 的 contentType 在使用 $resource 方法时会产生一些不良影响),而且,最重要的是

3)如果我不能改变它(或者即使我可以),你如何用它现在的工作方式解析JSP中的json数据。

非常感谢您的帮助,我不敢相信我还找不到这方面的东西,我一直在寻找一段时间。

4

1 回答 1

0

好吧,如果有人想知道这个:

我仍然不明白为什么 angular 和 jquery “post” 方法在给它们相同的数据类型(“application/json”)时会表现不同,但据我所知,Angular 似乎使用 REST,我猜是 JQuery才不是?

至于如何解析服务器端的json,看这篇文章:Retrieving JSON Object Literal from HttpServletRequest

于 2013-04-19T21:32:53.267 回答