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配置或者代码 有时在访问第三方的时候不可能实现。