同源策略和跨域
一、同源策略是一种约定,它是浏览器最核心也最基本的安全功能。
同源是指"协议+域名+端口"三者相同。
二、跨域:当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。
1、JSONP:a网页利用script可跨域请求,向b发送get请求,b将数据传进回调函数,a通过回调函数获取b的数据;
2、CORS:(跨域资源共享)
a. 对于简单请求,乙站点在响应头里添加 Access-Control-Allow-Origin:http://a.com 即可。
b. 对于复杂请求,如 PATCH,乙站点需要:
i. 响应 OPTIONS 请求,在响应中添加如下的响应头:
Access-Control-Allow-Origin: https://a.com
Access-Control-Allow-Methods: POST, GET, OPTIONS, PATCH
Access-Control-Allow-Headers: Content-Type
ii. 响应 POST 请求,在响应中添加 Access-Control-Allow-Origin 头。
c. 如果需要附带身份信息,JS 中需要在 AJAX 里设置 xhr.withCredentials =true 。
3、nginx反向代理、nodeJs中间件转发