1、第一种:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
public class corsfilter extends onceperrequestfilter { static final string origin = "origin" ; protected void dofilterinternal( httpservletrequest request, httpservletresponse response, filterchain filterchain) throws servletexception, ioexception { string origin = request.getheader(origin); response.setheader( "access-control-allow-origin" , "*" ); //* or origin as u prefer response.setheader( "access-control-allow-credentials" , "true" ); response.setheader( "access-control-allow-methods" , "put, post, get, options, delete" ); response.setheader( "access-control-max-age" , "3600" ); response.setheader( "access-control-allow-headers" , "content-type, authorization" ); if (request.getmethod().equals( "options" )) response.setstatus(httpservletresponse.sc_ok); else filterchain.dofilter(request, response); } } @bean public corsfilter corsfilter() throws exception { return new corsfilter(); } http .addfilterbefore(corsfilter(), usernamepasswordauthenticationfilter. class ) .addfilterbefore(authenticationtokenfilterbean(), usernamepasswordauthenticationfilter. class ) .headers() .cachecontrol(); |
2、第二种:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
@configuration public class corsconfig { @bean public filterregistrationbean corsfilter() { urlbasedcorsconfigurationsource source = new urlbasedcorsconfigurationsource(); corsconfiguration config = new corsconfiguration(); config.setallowcredentials( true ); // 设置你要允许的网站域名,如果全允许则设为 * config.addallowedorigin( "http://localhost:4200" ); // 如果要限制 header 或 method 请自行更改 config.addallowedheader( "*" ); config.addallowedmethod( "*" ); source.registercorsconfiguration( "/**" , config); filterregistrationbean bean = new filterregistrationbean( new corsfilter(source)); // 这个顺序很重要哦,为避免麻烦请设置在最前 bean.setorder( 0 ); return bean; } } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://segmentfault.com/a/1190000012364985