Desidero consentire le richieste di origine incrociata per un dominio. Il mio progetto utilizza Spring, quindi voglio approfittare del nuovo supporto CORS.L'annotazione del regolatore CORS molla non funziona
Sto usando la versione 4.2.0
per tutte le dipendenze springframework
.
Ho seguito l'esempio qui https://spring.io/blog/2015/06/08/cors-support-in-spring-framework#disqus_thread e ho provato la prima versione. Le mie annotazioni del controller appare come:
@CrossOrigin(origins = "http://fiddle.jshell.net/", maxAge = 3600)
@Controller
@RequestMapping("/rest")
public class MyController
se ho capito bene il MVC-config è un metodo alternativo. Ho provato così:
<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>
Con entrambi i metodi, la risposta non sembra contenere qualcosa di simile Access-Control-Allow-Origin
, né posso ottenere un risultato indietro attraverso una semplice query da jsfiddle.
Le informazioni di intestazione degli strumenti di sviluppo di Chrome, quando eseguite e accessibili da localhost sono sotto. In questo caso la richiesta proviene dallo stesso dominio e non tramite javascript, ma pensavo che l'annotazione CORS avrebbe comunque aggiunto i parametri di controllo dell'accesso?
intestazioni di risposta:
Content-Length:174869
Content-Type:text/html;charset=UTF-8
Date:Fri, 21 Aug 2015 12:21:09 GMT
Server:Apache-Coyote/1.1
Richiesta Intestazione:
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
Non faccio uso di avvio primavera e presumo ho perso un passo di configurazione.
Ho anche provato a usare '@ RestController' invece di' @ Controller' ma non sembrava fare alcuna differenza per le intestazioni. – ilinca
hai provato da un altro dominio? Se la richiesta non è di origine incrociata, non vedo perché il server deve aggiungere intestazioni CORS nella risposta –
Sei riuscito a risolverlo in qualche modo? Sto avendo lo stesso problema. –