前端调用资源跨域问题?

Nginx跨域简介

跨域设置、需要主跨域名的代理负载均衡上配置:CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。

整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。假如用户访问A,然后A里面有个AJAX请求从B拿资源,这时候需要在B上nginx配置允许A的CORS请求。

解决方法如下:

1     if ( $http_origin ~ http://www.baidu.com ){    #此处以百度的域名为例、实际按自己的域名设置,这里可以设置多个域名、请以|分割、或者*
2         set $allow_url $http_origin;
3     }
4     add_header Access-Control-Allow-Origin $allow_url;      #允许那些域名跨域
5     add_header 'Access-Control-Allow-Credentials' 'true';   #允许cookie跨域
6     add_header 'Access-Control-Allow-Methods' 'Get';        #允许跨域请求的方法  
7     将以上配置加入到nginx.conf的server标签内,然后重启nginx就可以了! 
View Code

希望本文能够帮助到你 ^_^   

转载于:https://www.cnblogs.com/jianlin/p/9127319.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值