websocket 握手连接 设置响应请求头注意事项

  • Post author:
  • Post category:其他

websocket 握手连接 设置响应请求头注意事项

采用 SockJS 连接websocket

var socket = new SockJS(“http://127.0.0.1:5555/webSocketServerEndpoint”);

后台服务设置websocker连接请求的响应头Access-Control-Allow-Credentials必须为true且Access-Control-Allow-Origin不能为* 才能连接成功

 

如果同时设置corsFilter 要注意

@Bean

public FilterRegistrationBean corsFilter() {

UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();

CorsConfiguration config = new CorsConfiguration();

config.setAllowCredentials(false);

ArrayList<String> allow =new ArrayList<>();

allow.add(“*”);

config.setAllowedOrigins(allow);

config.setAllowedHeaders(allow);;

config.setAllowedMethods(allow);

source.registerCorsConfiguration(“/**”, config);

FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));

bean.setOrder(Ordered.HIGHEST_PRECEDENCE);

return bean;

}

为了支持跨域,要设置Access-Control-Allow-Origin 为”*” ,同时Access-Control-Allow-Credentials 为 false (默认为fasle)

 

Access-Control-Allow-Origin:* 和 同时Access-Control-Allow-Credentials:true 不能同时设置

 

http://www.ruanyifeng.com/blog/2016/04/cors.html

(1)Access-Control-Allow-Origin

该字段是必须的。它的值要么是请求时Origin字段的值,要么是一个*,表示接受任意域名的请求

(2)Access-Control-Allow-Credentials

该字段可选。它的值是一个布尔值,表示是否允许发送Cookie。默认情况下,Cookie不包括在CORS请求之中。设为true,即表示服务器明确许可,Cookie可以包含在请求中,一起发给服务器。这个值也只能设为true,如果服务器不要浏览器发送Cookie,删除该字段即可

 

如果要发送Cookie,Access-Control-Allow-Origin就不能设为星号

 


版权声明:本文为yangbo10086原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。