跨域解决方案
正常情况下,我们使用ajax请求的数据都在自己的服务器上。但在一些特定的场景中,我们需要获取到别人的服务器上的数据,也就是在自己的服务器中的ajax要请求到别人的服务器的网址,这就是跨域。但是浏览器是不允许这样操作的,因为浏览器有同源策略。同源策略:所谓同源,就是指域名、协议、端口都相同。比如说:在自己的localhost域名下请求www.baidu.com下的内容,这样的协议首先就不同,自己的是http,百度的是https,所以会被同源策略限制。
如何解决跨域?
-
使用php做代理
也就是说跨域请求只是限制客户端向服务端,如果是服务端向服务端请求的话就不存在这个问题,也就是说需要跨域的请求交给php服务端来做,有了结果再响应给ajax即可。
原理上利用的php的爬虫技术。有file_get_contents()、curl、ob_get_contents()
-
在服务端设置响应头,允许跨域请求
如果请求的服务端是自己可操作的话,可以在php端设置允许跨域的响应头。代码如下:
header("Access-Control-Allow-Origin:*"); -
使用服务器代理(nginx)
在nginx配置文件中配置代理,具体配置如下:
location = 自定义url {
proxy_pass 待跨域请求的地址
} -
通过jsonp来实现
利用标签可以跨域(当前网页的图片链接可以是别的网站上的图片)的特性,制作标签进行跨域
欢迎各位大神指教,互相学习

浙公网安备 33010602011771号