什么是跨域
简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象。
同源是指相同的协议、域名、端口。
特别注意两点:
如果是协议和端口造成的跨域问题“前台”是无能为力的,
在跨域问题上,域仅仅是通过“协议+域名+端口”来识别,两个不同的域名即便指向同一个ip地址,也是跨域的。
跨域解决方案之CORS
CORS: 跨域资源共享(Cross-Origin Resource Sharing)
Nginx配置
对于简单请求,如GET,只需要在HTTP Response后添加Access-Control-Allow-Origin。
对于非简单请求,比如POST、PUT、DELETE等,浏览器会分两次应答。第一次preflight(method: OPTIONS),主要验证来源是否合法,并返回允许的Header等。第二次才是真正的HTTP应答。所以服务器必须处理OPTIONS应答。
|
|
把上面配置放入nginx server配置中的location配置下即可实现跨域
配置详解
前台代码
此页面在oa.lilixin.top域下
|
|
后台代码
后台代码部署在api.lilixin.top下
|
|
nginx实例配置
api配置
|
|
oa配置
|
|