跳转至

跨域問題

什麼情況會發生跨域問題

不同「店名」(不同網域)

如果你在 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):

res.setHeader("Access-Control-Allow-Origin", "*");

網域 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 的子域。