使用前后端分離的方式創建web項目的時候出現問題:
這是因為 ajax 請求的對應的域在本地的一個文件路徑,比如在D盤的某個文件夾,這里存放的都是前端文件;
但是對應的服務器是 localhost 的一個域名;
雖然請求可以到達服務端,服務端也可以處理,但是請求是無法進入ajax的success部分的。
springboot處理的方式是,在代碼里面加上跨域的注解。
spring的官方文檔有這個注解的解釋,如下圖
簡單翻譯一下:
這個注解會使得對應的方法支持跨域請求。
默認情況下,允許所有的 origin 和所有的 header ,以及所有的 controller 對應的HTTP方法。
allowedCredentials參數在默認情況下不啟用,因為這會建立一個信任級別,這個級別會把用戶的敏感信息(如cookies和CSRF令牌)公開,建議是只應在適當的情況下使用。
開始的時候加了:
@CrossOrigin
但是重啟應用之后還是有問題,於是就加入了allowedCredentials參數,改成:
@CrossOrigin(allowCredentials = "true", allowedHeaders = "*")
然后成功。