Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将变量从前端传递到后端_Javascript_Java_Angularjs_Spring - Fatal编程技术网

Javascript 将变量从前端传递到后端

Javascript 将变量从前端传递到后端,javascript,java,angularjs,spring,Javascript,Java,Angularjs,Spring,我在一个网站上工作,该网站的后端由Java完成(使用Spring托管),前端由Javascript管理。现在,我已经使用RestController将代码从后端发送到前端,但无法将数据从前端发送到后端。更详细地说,我正在尝试创建一个带有后端验证的登录表单 HTML表单代码: <form ng-submit="login"> <input type="text" ng-model="form.username" placeholder="username"> <

我在一个网站上工作,该网站的后端由Java完成(使用Spring托管),前端由Javascript管理。现在,我已经使用RestController将代码从后端发送到前端,但无法将数据从前端发送到后端。更详细地说,我正在尝试创建一个带有后端验证的登录表单

HTML表单代码:

<form ng-submit="login">
  <input type="text" ng-model="form.username" placeholder="username">
  <input type="password" ng-model="form.password" placeholder="password">
  <input type="submit" value="Login">
</form>
Java登录处理程序:

@RestController
public class LoginHandler  {

    private static final Logger log = LoggerFactory.getLogger(LoginHandler.class);


    @RequestMapping("/login")
    public void getLoginInfo(@RequestParam Map<String,String> requestParams) {
        RestTemplate restTemplate = new RestTemplate();
        User user = restTemplate.getForObject("http://localhost:3003/auth", User.class);
        log.info(user.toString());

    }

}
@RestController
公共类LoginHandler{
私有静态最终记录器log=LoggerFactory.getLogger(LoginHandler.class);
@请求映射(“/login”)
public void getLoginInfo(@RequestParam Map requestParams){
RestTemplate RestTemplate=新RestTemplate();
User=restTemplate.getForObject(“http://localhost:3003/auth“,User.class);
log.info(user.toString());
}
}

当您使用AngularJS将数据发送到后端并使用
data
键设置参数时,信息实际上是在请求正文而不是请求参数中发送的

因此,在SpringMVC控制器上,您可以使用
@RequestBody
将值分配回
映射。更改此行:

public void getLoginInfo(@RequestParam Map<String,String> requestParams) {
public void getLoginInfo(@RequestParam-Map-requestParams){
为此:

public void getLoginInfo(@RequestBody Map<String,String> requestParams) {
public void getLoginInfo(@RequestBody-Map-requestParams){
public void getLoginInfo(@RequestBody Map<String,String> requestParams) {