我的一个项目遇到了问题。我是新来的春天所以请帮助。即使在通过配置类启用CORS后,我仍然遇到一些方法问题。
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*");
}
这是来自配置类的片段。
在控制器中,我必须使用@CrossOrigin
显式地注释处理程序@CrossOrigin
@RequestMapping(value = "/complete_project", method = RequestMethod.PUT)
public ResponseEntity<Void> markProjectComplete(@RequestParam(name = "pid") Long pId,
@RequestParam(name = "score") Double score,
@RequestParam(required = false, name = "date") @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {
if (date == null)
date = new Date();
Long eId = projectService.markCompleted(pId, score, date);
employeeService.updateScore(eId);
return new ResponseEntity<Void>(HttpStatus.OK);
}
这是ajax调用
var url='http://localhost:8080/EmployeeExample/complete_project?pid='+$('#project_form_id').val()+'&score='+$('#project_completion_form_score').val();
if($('#project_completion_form_date').val()!="")
url+='&date='+$('#project_completion_form_date').val();
console.log($('#project_completion_form_date').val());
$.ajax({
url: url,
type: 'PUT'
})
.done(function() {
console.log("success");
refresh_project_list();
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
我想知道为什么需要明确注释处理程序。没有它它就无法运作。