【问题标题】:reading json sent from angular with jsp使用jsp读取从角度发送的json
【发布时间】:2013-03-27 19:36:00
【问题描述】:

因此,在我的 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数据。

非常感谢您的帮助,我不敢相信我还找不到有关此的内容,我一直在寻找一段时间。

【问题讨论】:

  • Angular 将其数据作为标准 REST 发送。 $resource.save 是一个 POST 请求,因此数据在请求的主体中是一个 json 对象(正如预期的那样,因为内容类型是 application/json
  • 根据我读过的很多内容,这是有道理的,但是你知道为什么当我使用带有 Post 方法和 contentType 作为 application/json 的 jQuery.ajax() 时,数据发送方式不同,它在参数中可用,它们不在请求正文中(至少我很确定它们不是)?
  • 我可以看看你的代码(jQuery.ajax() 请求和 angular.$resource 请求)吗?

标签: javascript ajax json jsp angularjs


【解决方案1】:

好吧,如果有人对此感到疑惑:

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

至于如何在服务端解析json,看这个帖子:Retrieving JSON Object Literal from HttpServletRequest

【讨论】:

    猜你喜欢
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多