angular $http请求,spring mvc如何获得参数

来源:互联网 发布:女子不孕不育网络咨询 编辑:程序博客网 时间:2024/06/17 16:35

1、angular的请求方式(参考《精通AngularJS》)

GET: $http.get(url, config)
POST: $http.post(url, data, config)
PUT: $http.put(url, data, config)
DELETE: $http.delete(url, config)

其中各参数含义如下:
url: 调用目标URL
data:请求体中送出的数据
config: 包含额外配置信息的js对象。

对于config的重要属性有:
method:所用的http方法
url:请求的目标的url
params:url的参数
headers:额外的请求头
transformRequest、transformResponse:在与后端交换数据前或交换数据后,对数据进行处理的函数。

2、$http请求,$.ajax请求

var user = {name: "xiao", age: "21"};$http.post("http://127.0.0.1:8081/dfsc/saveUser.do",user);
$.ajax({        url:"http://127.0.0.1:8081/dfsc/saveUser.do",        type:"POST",        data:{name:"xiao", age:"20"}    });

3、spring接收参数

后台代码:
这里写图片描述

$http请求的结果:
这里写图片描述

$.ajax请求的结果:
这里写图片描述

为何会出现这种现象呢?下面的链接给出了说明。
http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/
链接中也给出了讲angular的http.ajax靠拢的方法。但是正如文中所言,angular并没有错。
其实只需要回顾angular的请求方式就得出答案:

var user = {name: "xiao", age: "21"};$http.post("http://127.0.0.1:8081/dfsc/saveUser.do",{},{params:user});

结果:

这里写图片描述

当然了,正确的处理方式其实是更改java代码

@RequestMapping("saveUser.do")public void saveUser(@RequestBody User user){    doSomething();} public class User{    public String name;    public String age;//此处应该为int类型合适。写程序的时候注意!!!   //set 和 get 方法此处就不写了}

然而我现在需求比较特殊没必要用User对象。就仅仅需要name和age的变量。

@RequestMapping("saveUser.do")public void saveUser(@RequestBody String user){    JSONObject json = JSONObject.formObject(user);    String name = json.getString("name");    String age = json.getString("age");} 

最后留一个小疑问:

@RequestMapping("saveUser.do")public void saveUser(@RequestBody JSONObject json){    String name = json.getString("name");    String age = json.getString("age");} 

这种方式如何实现呢???

1 0
原创粉丝点击