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

本文对比了AngularJS中的$http请求与jQuery的$.ajax请求的不同之处,并解释了这两种请求方式在Spring后端上的表现差异。同时,介绍了AngularJS中$http请求的使用方法以及如何正确地在Spring后端接收这些请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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");
} 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值