php是最好的语言

nginx利用反向代理解决跨域问题

之前写过通过添加头部信息解决跨域(http://phpindex.win/?id=25),这里利用nginx的反向代理解决

<html>
<head>
	<title></title>
</head>
<body>
fffffff
</body>
<script type="text/javascript">

var ajax = new XMLHttpRequest();

//https://api.douban.com/v2/book/isbn/9787308083256  这个是原网址 直接get请求会报跨域错误

ajax.open('get','http://localhost:8094/douban/v2/book/isbn/9787308083256');

ajax.send();

ajax.onreadystatechange = function () {
	if(ajax.readyState==4&&ajax.status==200){  
            var obj = JSON.parse(ajax.responseText);  
            console.log(obj);
        }  
};
</script>
</html>
server {
        listen       8094;
        server_name  localhost;
        root /Library/WebServer/Documents/pass;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

       location / {
            index  index.html index.htm;
        }

        #多一个接口就要多开一个
        location /douban {
          proxy_pass   https://api.douban.com/;
       }

}

第一个文件是前端请求 第二个文件是nginx配置 注意这两个东西要在同一台服务器上。利用nginx的好处就是不需要修改源nginx的配置或者代码 我们只需要用一个nginx作为中间转发就可以了,之前说的那种处理跨域需要修改源nginx配置或者代码 有时在访问第三方的时候不可能实现。

作者:xTao 分类:LNMP 浏览:2369 评论:0