Nginx 解决前端 CORS 跨域问题
Nginx 跨域 反向代理 大约 841 字问题描述
Access to XMLHttpRequest at 'http://localhost:8080/test' from origin 'http://localhost:63342' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource
前端Ajax
或Axios
等XMLHttpRequest
请求一个第三方的接口时,会出现跨域问题。
解决方案
只需在Nginx侧过滤掉OPTIONS
请求,不转发给第三方接口,直接在Nginx
就返回前端。前端就会认为OPTIONS
请求成功了继续发送POST
请求,此时Nginx
将此次的POST
请求真正转发给第三方接口。
配置文件
location /test {
if ($request_method = OPTIONS) {
add_header Access-Control-Allow-Origin $http_origin; # 必须要有
add_header Access-Control-Allow-Headers *; # 必须要有
#add_header Access-Control-Allow-Methods GET,POST,OPTIONS; # 不加也行
#add_header Access-Control-Allow-Credentials true; # 不加也行
return 200; # 204也可以,只要返回成功码即可
}
proxy_pass http://abc.com/def;
}
阅读 10171 · 发布于 2020-02-15
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Linux uniq 命令简单使用阅读 3175
-
Windows C 盘隐藏文件 pagefile.sys 扩大电脑内存阅读 1061
-
k3s 设置镜像阅读 1883
-
传统网页集成 Keycloak 作为 OAuth2 的 Client 客户端阅读 41
-
OpenResty 使用 Certbot 生成 SSL 证书阅读 3032
-
curl 不打印返回值信息阅读 526
-
Android 使用 .nomedia 文件夹保存私有媒体文件阅读 4409
-
Linux vi/vim 操作阅读 1859
-
Java 语法糖 - 方法重写时的桥接方法阅读 1026
-
Kubernetes Pod 控制器 Job阅读 934