首先我門要知道什么是跨域:
跨域是指 不同域名之間相互訪問。跨域,指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript施加的安全限制。
也就是如果在A網站中,我們希望使用Ajax來獲得B網站中的特定內容
如果A網站與B網站不在同一個域中,那么就出現了跨域訪問問題。
什么是同一個域?
同一協議,同一ip,同一端口,三同中有一不同就產生了跨域。
前端解決跨域:
前邊也說了,跨域是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript施加的安全限制。
解決:
所以搞一個node 服務器做代理,發出請求到node 服務器,node服務器轉發到后端就可以繞過跨域問題。
后端解決跨域問題:
后端解決就比較簡單了。例如我用的springboot,只用在Controller類上添加一個“@CrossOrigin“注解就可以實現對當前controller 的跨域 訪問了,當然這個標簽也可以加到方法上。
@RequestMapping(value = "/users") @RestController @CrossOrigin public class UserController { @Autowired private UserService userService; @RequestMapping(method = RequestMethod.POST) @CrossOrigin public User create(@RequestBody @Validated User user) { return userService.create(user); } }
相關知識:
CSRF是什么?
CSRF(Cross-site request forgery),中文名稱:跨站請求偽造,也被稱為:one click attack/session riding,縮寫為:CSRF/XSRF。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。