angular2 http post请求无法接收参数

时间:2017-07-19 02:17:13

标签: angular angular2-http

我想发布一个简单的http请求,但后端无法接收参数

export class AppComponent {
  isMenuCollapsed$:Observable<boolean>;

  constructor(private store:Store<reducers.State>,private http:Http) {

    this.isMenuCollapsed$ = this.store.select(reducers.getIsCollapsed);
    let body: URLSearchParams = new URLSearchParams();

    body.set('username', 'admin');
    body.set('password', 'admin');
    let head = new Headers({
      'Content-Type': 'application/json'
    });
    http.post('api/user/auth',body).subscribe(v => console.log(v));
  }
}

这是我的后端代码:

@RestController
@RequestMapping("/user")
public class TestController {

    @GetMapping("/get")
    public String  test(){
        return "hello";
    }

    @PostMapping("/auth")
    public String  auth(HttpServletRequest request){
        return "username:" + request.getParameter("username") + 
                "|password:" + request.getParameter("password");
    }
}

当我使用常规方法时,它起作用了:

enter image description here

但是当我使用angular http时,返回null enter image description here

所以我希望有人可以帮助我,谢谢!

2 个答案:

答案 0 :(得分:0)

我认为相反og getParameters你应该用某些东西来获取请求。创建简单的用户名和密码对象,如

let body={username:"admin", password:"admin"}

在传递请求之前对字体进行字符串化。

this.http.post(...., Json.stringify(body))

答案 1 :(得分:0)

你需要让后端和前端发布对象