当前位置:论坛首页 > Linux面板 > 求助

【已完成】跨域问题 strict-origin-when-cross-origin 求解决

发表在 Linux面板2023-11-14 15:33 [复制链接] 5 5014

为了能快速了解并处理您的问题,请提供以下基础信息:
面板、插件版本:

Linux面板 8.0.3
系统版本:

centos 7.9
问题描述:

部署前后端分离项目,vue2+django,使用nginx配置跨域,使用SSL。配置文件见图
/ 开头是前端地址
/show 开头是后端地址
相关截图(日志、错误):

nginx后台日志:"GET /img/location.5de53c8d.png HTTP/1.1" 304 0 "http://106.*.*.88/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
"GET /img/manager3.2fd02cac.png HTTP/1.1" 304 0 "http://106.*.*.88/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
"GET /img/mail.a72b79c3.png HTTP/1.1" 304 0 "http://106.*.*.88/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
"GET /img/login.8612311d.svg HTTP/1.1" 304 0 "http://106.*.*.88/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
"GET /logo.png HTTP/1.1" 304 0 "http://106.*.*.88/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"

浏览器报错:
strict-origin-when-cross-origin



nginx配置.png
nginx日志.png
浏览器报错.png
使用道具 举报 只看该作者 回复
发表于 2023-11-14 16:02:59 | 显示全部楼层
大炮运维V587 发表于 2023-11-14 15:56
您好,网站跨域的问题本身就不被浏览器所允许,您可以尝试调整成一直的协议。我们这里没有更好的方案给到 ...

感谢,已解决
使用道具 举报 回复 支持 反对
发表于 2023-11-14 15:41:39 | 显示全部楼层
您好,浏览器跨域是指浏览器在安全策略下限制了不同源(协议、域名、端口)之间的交互,是浏览器做的安全措施,为了防止恶意网站利用客户端的漏洞来攻击其他网站如果你在代码中无法实现,或者不会,我这里有一段参考代码,可以根据nginx的跨域配置参考代码修改成你自己的
location / {  
    # 允许跨域的请求,可以自定义变量$http_origin,*表示所有  
    add_header 'Access-Control-Allow-Origin' *;  
    # 允许携带cookie请求  
    add_header 'Access-Control-Allow-Credentials' 'true';  
    # 允许跨域请求的方法:GET,POST,OPTIONS,PUT  
    add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT';  
    # 允许请求时携带的头部信息,*表示所有  
    add_header 'Access-Control-Allow-Headers' *;  
    # 允许发送按段获取资源的请求  
    add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';  
    # 一定要有!!!否则Post请求无法进行跨域!  
    # 在发送Post跨域请求前,会以Options方式发送预检请求,服务器接受时才会正式请求  
    if ($request_method = 'OPTIONS') {  
        add_header 'Access-Control-Max-Age' 1728000;  
        add_header 'Content-Type' 'text/plain; charset=utf-8';  
        add_header 'Content-Length' 0;  
        # 对于Options方式的请求返回204,表示接受跨域请求  
        return 204;  
    }  
}  
使用道具 举报 回复 支持 反对
发表于 2023-11-14 15:51:26 | 显示全部楼层
大炮运维V587 发表于 2023-11-14 15:41
您好,浏览器跨域是指浏览器在安全策略下限制了不同源(协议、域名、端口)之间的交互,是浏览器做的安全措 ...

您好,已使用您的设置,但还是报错跨域。由于我使用SSL,注意到浏览器这边Request URL 和Request Headers的协议不一致,一个是https,一个是http,会不会是这个问题。
Snipaste_2023-11-14_15-46-59.png
使用道具 举报 回复 支持 反对
发表于 2023-11-14 15:56:16 | 显示全部楼层
宝塔用户_lappyf 发表于 2023-11-14 15:51
您好,已使用您的设置,但还是报错跨域。由于我使用SSL,注意到浏览器这边Request URL 和Request Headers ...

您好,网站跨域的问题本身就不被浏览器所允许,您可以尝试调整成一直的协议。我们这里没有更好的方案给到您
使用道具 举报 回复 支持 反对
发表于 2023-11-14 18:18:21 | 显示全部楼层

好的哈,本帖已结!感谢您的支持
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表