nginx代理 解决 跨域调用子页或allow-same-origin或Access-Control-Allow-Origin问题
简单说下背景和解决方案
项目需要iframe引入其他项目的页面,或者调用其他项目接口。
原因:受浏览器同源策略限制
方法一:修改子窗口请求服务器响应头x-frame-options,设置为允许你自己的域名通过。(略)
方法二:用nginx搞一个代理服务器转发请求
方法二 本人理解变成同源既可
项目 | Value | 访问 |
---|---|---|
代理 | xxx.xxx.xxx.xxx:8080 | xxx.xxx.xxx.xxx:8080 |
A | xxx.xxx.xxx.xxx:8081 | xxx.xxx.xxx.xxx:8080/A |
B | xxx.xxx.xxx.xxx:8082 | xxx.xxx.xxx.xxx:8080/B |
C | xxx.xxx.xxx.xxx:8083 | xxx.xxx.xxx.xxx:8080/C |
假设A为本地项目,B,C为其他服务器项目。本地启动nginx监听8080,配置如下
nginx config配置
server {
listen 8080;
server_name localhost 123.4.123.131 123.16.0.123;
location /A/ {
set $flag 0;
if ( $request_uri ~ ^/A/(\w*)/$ )
{
set $mikeid $1;
}
if ( $request_uri = /A/$mikeid/ )
{
set $para $mikeid;
}
if ( $request_uri != /A/$mikeid/ )