websocket+springboot,vue+sockjs,如何解决跨域?
springboot+wesocket作后端,使用vue+sockjs作前端,前后端分离,链接后端路径一直报跨域问题,我想向您请教一下如何实现sockjs前端跨域的问题?反向代理的话如何配置?
1、nginx 配置, 通过代理转发到跨域的域名
2、跨域会有OPTIONS预检(会发送两个请求,一次是OPTIONS ,一次是真正的请求)
后端处理 遇到options 请求时 可以返回 response header
Access-Control-Allow-Origin:*
Access-Control-Allow-Headers:Content-Type,AccessToken,X-CSRF-Token, Authorization, Token
Access-Control-Allow-Methods:POST, GET, OPTIONS, PUT, PATCH, DELETE
并返回http status :2XX
3、jsonp
jsonp格式就好了
继承 :WebMvcConfigurationSupport
重写 addCorsMappings
@Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowedMethods("GET", "POST", "PUT", "OPTIONS", "DELETE", "PATCH") .allowCredentials(true).maxAge(3600); }
用CorsRegistry就行