Chcę zezwolić na żądania różnych źródeł dla jednej domeny. Mój projekt wykorzystuje Spring, więc chcę skorzystać z nowego wsparcia CORS.Adnotacja kontrolera Spring CORS nie działa
Używam wersji 4.2.0
dla wszystkich zależności springframework
.
Podążyłem za przykładem tutaj https://spring.io/blog/2015/06/08/cors-support-in-spring-framework#disqus_thread i wypróbowałem pierwszą wersję. Adnotacje kontrolera wyglądają następująco:
@CrossOrigin(origins = "http://fiddle.jshell.net/", maxAge = 3600)
@Controller
@RequestMapping("/rest")
public class MyController
Jeśli dobrze rozumiem, mvc-config jest alternatywną metodą. Próbowałem również:
<mvc:cors>
<mvc:mapping path="/**"
allowed-origins="http://fiddle.jshell.net/, http://domain2.com"
allowed-methods="GET, PUT"
allowed-headers="header1, header2, header3"
exposed-headers="header1, header2" allow-credentials="false"
max-age="123" />
</mvc:cors>
albo metod, odpowiedź wydaje się nie zawierać niczego podobnego Access-Control-Allow-Origin
, nie mogę uzyskać wynik z powrotem za pomocą prostego zapytania z jsfiddle.
Informacje o nagłówku z narzędzi dla programistów Chrome po uruchomieniu i uzyskaniu dostępu z hosta lokalnego znajdują się poniżej. W tym przypadku żądanie pochodzi z tej samej domeny, a nie z javascript, ale myślałem, że adnotacja CORS i tak doda parametry kontroli dostępu?
Response Nagłówki:
Content-Length:174869
Content-Type:text/html;charset=UTF-8
Date:Fri, 21 Aug 2015 12:21:09 GMT
Server:Apache-Coyote/1.1
Zapytanie Header:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*\/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,ro;q=0.6,de;q=0.4,fr;q=0.2
Cache-Control:no-cache
Connection:keep-alive
Cookie:JSESSIONID=831EBC138D2B7E176DF4945ADA05CAC1;_ga=GA1.1.1046500342.1404228238; undefined=0
Host:localhost:8080
Pragma:no-cache
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0(Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36
nie używam bagażnik sprężyny i przypuszczam, brakowało mi krok konfiguracji.
Próbowałem również użyć '@ RestController' zamiast' @ Controller', ale nie wydawało się to żadnego znaczenia dla nagłówków. – ilinca
Czy próbowałeś z innej domeny? Jeśli żądanie nie jest pochodzenia krzyżowego, to nie widzę powodu, dla którego serwer powinien dodać nagłówki CORS w odpowiedzi –
Czy udało Ci się jakoś go rozwiązać? Mam ten sam problem. –