Javascript 将变量从前端传递到后端
我在一个网站上工作,该网站的后端由Java完成(使用Spring托管),前端由Javascript管理。现在,我已经使用RestController将代码从后端发送到前端,但无法将数据从前端发送到后端。更详细地说,我正在尝试创建一个带有后端验证的登录表单 HTML表单代码: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"> <
<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) {