伙计们,我很抱歉问了这么愚蠢的问题。但我是一个学生,代码不能正常工作
当我发出post请求时,它不工作,只有get请求工作
@PostMapping("/print")
public ResponseEntity<?> print()
{
return ResponseEntity.ok("Успешно изтрихте записа!");
}
@PostMapping("/save")
public ResponseEntity<?> saveOrUpdate(@RequestBody userRequest form){
City city = cityRepository.findById(form.getCityId()).orElse(cityRepository.findById(17L).get());
boolean isNew = form.getId() == null;
Users users = new Users (
form.getId(),
form.getName(),
form.getNum(),
// cityId == null? cityRepository.save(new City(cityName)): cityRepository.findById(cityId).orElse(null) );
city );
users = userRepository.save(users);
Map<String, Object> response = new HashMap<>();
response.put("generatedId", users.getId());
if(isNew) {
response.put("message", "Успешно записан!");
}
else{
response.put("message", "Успешно редактиран!");
}
return new ResponseEntity<>(response, HttpStatus.OK);
}
我不完全确定原因是什么,但这可能是CSRF相关的问题。要确保这一点,请尝试在spring安全配置中禁用CSRF。但是,从长远来看,您需要提供CSRF令牌。
@EnableWebSecurity
public class ApiSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
}
}
你不清楚这个问题,所以很难调试,但我认为问题可能在视图页面,所以尝试添加这个方法="post"从你的表单标签中输入如下
<form action="/print" method="post">
如果你不想这样做,把这个@PostMapping改成@RequestMapping。