Spring + restful + cors + not func

时间:2018-02-20 16:02:08

标签: spring rest cors

我在春天的休息服务中遇到了问题。即使在启用CORS之后,我也无法连接到我的角度应用程序。

@CrossOrigin
public class UsuarioController {

    @Autowired
    UsuarioService service; 

    @RequestMapping(method = RequestMethod.GET, value = "/lista_todos_usuarios", produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<Collection<Usuario>> buscaTodosUsuarios() {
        Collection<Usuario> usuarios = service.buscaTodosUsuarios();
        return new ResponseEntity<>(usuarios, HttpStatus.OK);

    }
}

4 个答案:

答案 0 :(得分:0)

来自Enabling Cross Origin Requests for a RESTful Web Service

在您的情况下,我认为您需要指明允许访问服务的来源。

在示例中,原点为http://localhost:9000。它应该与您的Angular应用程序相对应。

  

启用CORS

     

控制器方法CORS配置

     

这样RESTful Web服务将包含CORS访问控制   在回复中标题,您只需要添加@CrossOrigin   处理程序方法的注释:

src/main/java/hello/GreetingController.java
     
@CrossOrigin(origins = "http://localhost:9000")
@GetMapping("/greeting")
public Greeting greeting(@RequestParam(required=false, defaultValue="World") String name) {
    System.out.println("==== in greeting ====");
    return new Greeting(counter.incrementAndGet(), String.format(template, name));
}

答案 1 :(得分:0)

作为一个非常简单的解决方法,我建议为Chrome安装CORS扩展插件,并在初始开发阶段使用它。

答案 2 :(得分:0)

如果您需要全局配置,可以在Web配置中覆盖 WebMvcConfigurerAdapter 的方法 addCorsMappings

TFRecord

答案 3 :(得分:0)

谢谢尼古拉,有时我们错过了明显的事情。呵呵呵

事实上,我忘了使用@RestController注释该类。