JS前端同源策略和跨域



同源策略(Same-Origin Policy)和跨域(Cross-Origin)是JavaScript中关于安全性的两个重要概念。

同源策略

同源策略是浏览器的一种安全机制,它防止了恶意网页访问其他网页的敏感信息。同源是指协议、域名和端口都相同。如果这三个因素中的任何一个不同,那么两个网页就被认为是不同源的。

例如,以下两个URL是同源的:

https://example.com/page1.html  
https://example.com/page2.html

而以下两个URL不是同源的:

https://example.com/page1.html  
http://example.com/page2.html

同源策略的主要目的是为了防止恶意网页通过插入脚本或其他方式来窃取其他网页的信息。

跨域

跨域是指一个网页去请求另一个不同源的网页资源。由于同源策略的限制,一个网页不能直接访问另一个不同源的网页的资源,除非这个资源公开了其接口或者使用了CORS(跨域资源共享)技术。

跨域的主要解决方法是使用CORS。CORS是一种W3C规范,它允许服务器端设置响应头,告诉浏览器这个响应可以被哪些源访问。这样,一个网页就可以通过AJAX或其他方式请求另一个不同源的网页资源。

例如,如果服务器设置了Access-Control-Allow-Origin: *响应头,那么任何网页都可以访问这个资源。如果服务器设置了Access-Control-Allow-Origin: https://example.com响应头,那么只有https://example.com这个源的网页可以访问这个资源。

总结:同源策略是浏览器的一种安全机制,用于防止恶意网页访问其他网页的敏感信息。跨域是指一个网页去请求另一个不同源的网页资源,需要通过CORS技术来解决。