api调用获取失败,CORS,nginx已配置
Posted
技术标签:
【中文标题】api调用获取失败,CORS,nginx已配置【英文标题】:api call get failed, CORS, nginx is confiured 【发布时间】:2020-06-20 01:07:12 【问题描述】:您好,感谢您的宝贵时间
我有一个在端口 6000 上运行的 dotnet core web api 应用程序和一个 angular 应用程序,使用 nginx 我将 https://api.asoode.com 反向代理到 donet 核心应用程序,并将 https://panel.asoode.com 反向代理到 angular 应用程序
dotnet 核心应用的 nginx 配置是:
location /
root /home/asoode/api;
proxy_pass http://45.82.138.126:6000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
if ($request_method = 'OPTIONS')
add_header 'Access-Control-Allow-Origin' 'panel.asoode.com';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
if ($request_method = 'POST')
add_header 'Access-Control-Allow-Origin' 'panel.asoode.com';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
if ($request_method = 'GET')
add_header 'Access-Control-Allow-Origin' 'panel.asoode.com';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
我使用了通配符,有和没有协议的域,我仍然收到 CORS 错误,
当我使用邮递员和 OPTION 方法请求 api 时,我得到了这个结果,这表明 panel.asoode.com 是允许的!!!!!!
【问题讨论】:
【参考方案1】:我有 2 个错误,主要是我的错,因为错误消息说提供的值无效,
1- 需要的协议 2-我的客户端应用程序使用“自定义标头”名称进行授权,我不知道我必须把它放在那里
【讨论】:
以上是关于api调用获取失败,CORS,nginx已配置的主要内容,如果未能解决你的问题,请参考以下文章
Axios CORS/Preflight 因 Laravel 5.4 API 调用而失败
如何正确配置服务器和浏览器以避免cors错误?获取 API + Node.js
对 https://***.com/jobs/feed 的 http 获取请求因 CORS 失败