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