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请求的结果:
为何会出现这种现象呢?下面的链接给出了说明。
//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");}
这种方式如何实现呢???
如果觉得《angular $http请求 spring mvc如何获得参数》对你有帮助,请点赞、收藏,并留下你的观点哦!