2020-10-07|閱讀時間 ‧ 約 3 分鐘

Web瀏覽器的 Same-origin policy (同源政策)

一串網址其實是這樣組成的:
scheme://host.domain:port/path/filename
舉例如下:
http://www.yahoo.com:8080/html/hello.php
http = scheme www = host yahoo.com = domain 8080 = port html = path hello.php = filename

所謂的同源,意思是scheme, host, domain, port 都一樣,就是同源。 同源政策是瀏覽器基於安全性考量而存在的一個政策,針對瀏覽器指令碼的限制。 假如今天我設計一個網站,透過ajax去拿別人的網頁資料,因為不同源,違反同源政策,js就無法拿到回傳的資料。 當然如果我不透過瀏覽器,就沒有這個限制了。 若是單純的把別人網站的img嵌入自己的網站,或是轉址到別人網站,或將別人網站用iframe嵌入自己網站,使用script src="xxx"/script,import css等等,則不受同源政策限制。
那麼有沒有什麼方式,可以讓我的javascript可以拿到不同源的資料呢? 有的,這邊就要提到CORS了,請參考下一篇。
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.