跨域問題
什麼情況會發生跨域問題
不同「店名」(不同網域)
如果你在 A炸雞店(http://chicken.com), 但你想請它去 B飲料店(http://drink.com) 拿東西,這就是跨域。
同一條街,但不同「店號」(不同子域)
如果你在 A炸雞店(http://chicken.com), 但你想請它去 B炸雞外送站(http://api.chicken.com) 送餐,這也是跨域。
同一家店,但不同「門口」(不同 port)
你站在 A炸雞店(http://localhost:3000), 但你想請它從 B倉庫(http://localhost:5000) 拿雞肉,這也是跨域。
如何「允許跨店點餐」?
如果炸雞店的老闆願意 特別開放權限,就可以解決跨域問題。 在 飲料店(後端) 加上 允許跨域的規則(CORS):
網域 vs. 子域
什麼是「網域(Domain)」?
網域 就像 一家炸雞連鎖店的總部,所有分店都屬於這個網域。
例如,chicken.com 這個網址,就是這家炸雞店的總部名稱。
什麼是「子域(Subdomain)」?
子域 就像是 這家炸雞店開的不同分店,雖然屬於同一家公司,但負責不同的事情。
子域只是在主網域前面多一個「名稱」來區分不同服務
例如:
-
api.chicken.com→ 炸雞 API 伺服器(負責訂單、數據) -
shop.chicken.com→ 炸雞商城(負責線上訂購) -
blog.chicken.com→ 炸雞食譜部落格(負責分享炸雞食譜)
api.chicken.com 是 chicken.com 的子域嗎?
api.chicken.com 前面多了一個 api.,表示它是 chicken.com 的子域。
規則: 只要是 xxxx.chicken.com 這種形式,都是 chicken.com 的子域。