前言
最近一个项目,因为某些原因,需要从https访问改为http访问,在改造中出现了跨域的问题,在这里记录下。
项目使用nginx做反向代理。
改造HTTP
访问网站浏览器会自动跳转到https,需要把nginx http重定向到https给注释了
server {
listen 80;
listen [::]:80;
server_name server_name;
location ^~ /.well-known/acme-challenge/ {
default_type "text/plain";
root /usr/share/;
}
location = /.well-known/acme-challenge/ {
return 404;
}
# location / {
# return 301 https://$host$request_uri;
# }
}
这样我们在浏览器访问的时候,就不会自动给我们重定向到了https
跨域
在改为http的时候出现了跨域,一般的解决方法就是在nginx加上如下配置
add_header 'Access-Control-Allow-Ori

在将项目从HTTPS改为HTTP访问时,遇到了浏览器跨域问题。通过检查发现,尽管在nginx配置中去除了HTTP到HTTPS的重定向,但浏览器在预检请求时仍发生重定向,导致'Access-Control-Allow-Origin'头缺失。问题根源在于nginx配置中强制所有请求使用HTTPS的设置。移除或修改该配置,避免预检请求阶段的重定向,解决了跨域问题。
订阅专栏 解锁全文

501

被折叠的 条评论
为什么被折叠?



