1. 程式人生 > >後端(springboot)解決跨域問題

後端(springboot)解決跨域問題

首先我門要知道什麼是跨域:

跨域是指 不同域名之間相互訪問。跨域,指的是瀏覽器不能執行其他網站的指令碼。它是由瀏覽器的同源策略造成的,是瀏覽器對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。