首页 > 其他分享 >常见问题解决 --- 如何解决CROS跨域问题

常见问题解决 --- 如何解决CROS跨域问题

时间:2024-09-30 17:24:45浏览次数:10  
标签:常见问题 http 跨域 IP CROS Nginx proxy 服务器 客户端

问题原因:

  前后端不是一个服务导致的浏览器禁止访问的安全问题。比如前端部署在http://x.x.x.x:8888,后端部署在http://x.x.x.x:9999,由于端口不一致,浏览器安全起见不允许一个web页面有不同ip或端口的地址发送出流量。在开发者工具可以看出CROS错误。

解决办法:

关闭浏览器安全策略。不常用。

前端服务器做转发。这也是常见的解决办法,nginx举例

location /pro/ {                 #要替换的原路径  
  proxy_pass http://wxcc.xxx.cn/;       #替换后的路径,比如 原 http://xxxxx:8888/pro/xxx.html 替换后  http://wxcc.xxx.cn/xxx.html
  proxy_set_header Host wxcc.iepose.cn;   #添加转发头 host 为指定主机,必须指定,如果不指定就是原服务器的ip,导致发送请求返回404

  proxy_set_header X-Real-IP $remote_addr;    #用途:当 Nginx 作为反向代理时,目标服务器收到的请求中,客户端的原始 IP 地址可能会丢失,因为 Nginx 是代理,而不是直接与客户端连接。通过设置 X-Real-IP,你可以将真实的客户端 IP 传递给后端服务器,让后端知道是谁发起了请求。
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  #用途:这个头部用于记录客户端和所有经过的代理服务器的 IP 地址。在代理链中,目标服务器可以通过查看 X-Forwarded-For 确定请求经过了哪些代理服务器,以及最终发起请求的客户端 IP。通常,后端服务器用来分析真实来源或者进行日志记录。
  proxy_set_header X-Forwarded-Proto $scheme;   #用途:当 Nginx 代理请求到后端服务器时,后端服务器可能需要知道客户端使用的是 HTTP 还是 HTTPS 协议。X-Forwarded-Proto 头让后端可以知道用户是通过哪种协议访问的,即使在 Nginx 和后端之间的连接本身可能使用另一种协议(例如,Nginx 通过 HTTP 转发 HTTPS 请求)。后端服务器通常使用这个信息来生成相应的重定向或生成 URL。

}

后端服务器配置http响应头为前端地址,浏览器收到后允许访问。

 

标签:常见问题,http,跨域,IP,CROS,Nginx,proxy,服务器,客户端
From: https://www.cnblogs.com/GKLBB/p/18442028

相关文章

  • 微软远程连接工具:Microsoft Remote Desktop for Mac 中文直装版
    MicrosoftRemoteDesktop是一款由微软开发的远程桌面连接工具,允许用户远程访问和控制另一台计算机。它支持Windows、macOS、iOS和Android等多种操作系统,提供了灵活的远程工作解决方案,非常适合需要在不同位置访问工作计算机的用户。主要功能:远程访问:用户可以通过互联网或......
  • html2canvas图片跨域问题
    需求:页面有个弹窗,弹窗内部有网站logo、表格、第三方的图片等内容,点击打印按钮,将弹窗区域内容下载至本地安装依赖pnpmaddhtml2canvas引入importhtml2canvasfrom'html2canvas'使用<template>...<button@click="handlePrint()">打印</button></template><s......
  • SciTech-Automation-UI交互自动化: Microsoft 的 接口自动化测试 : 微信的: LLM(AI/Tr
    用LLM+Python实现微信消息的自动应答!/usr/bin/python3#coding:utf-8importpandasaspdimportnumpyasnpfromuiautomationimportwindowControl,Menucontrolfromfunctoolsimportpartial,wraps#readreplydatadf=pd.read_csv("应答数据.csv",......
  • 腾讯企业邮箱(企业微信邮箱)迁移到microsoft 365(office 365)
    1.迁移前准备(腾讯企业邮箱)1.如果你是企业管理员,首先看一下企业邮箱后台,是否已关闭登陆安全2.登录要迁移的个人邮箱后台,关闭安全登录、开启IMAP服务和相关选项,以及为邮箱设置一个密码 2.开始迁移1.登录microsoft365管理后台(https://admin.exchange.micro......
  • pbootcms多语言建站常见问题(如何搭建中英文站)
    添加数据区域在后台“系统管理>数据区域”中添加相应的区域。参考默认区域的设置。放置多语言模板将多语言的模板放入模板目录 template 下。不同语言的模板均放在 template 目录下。设置站点信息在后台选择不同的语言,分别设置:站点信息(注意选择模板)公......
  • 题解 ABC373G【No Cross Matching】/ POJ3565【Ants】
    题目描述年轻的自然主义者比尔在学校里研究蚂蚁。他的蚂蚁以生活在苹果树上的蚜虫为食。每个蚂蚁群需要自己的苹果树来养活自己。比尔有一张地图,上面标有\(n\)个蚂蚁群和\(n\)棵苹果树的坐标。他知道蚂蚁从它们的蚂蚁群到它们的取食地点,然后返回蚂蚁群,都是使用化学标记的路线......
  • 【可用】【一眼就会】Access-Control-Allow-Origin (CORS 头缺少 'Access-Control-Allo
    解决跨域问题有多种方式,很多文章都是千篇一律。没有实质性,没有给出具体解决方法。更可悲的是,官方给出的解决方案就是提示,解释是:“对于允许所有源的情况,可以设置Access-Control-Allow-Origin:*。如果要限制到特定的源,可以设置具体的域名,例如Access-Control-Allow-Origin:https:......
  • 09 模块导入规则 寻找模块 常见问题
    模块导入规则在python内部导入模块时,必须要遵循他的规则,必须去指定的目录中找py文件。寻找模块一般就三个位置优先在当前运行脚本的同级目录 【一般问题比较多】python的安装目录【内置模块】python的安装目录+site-packages【第三方模......
  • [转]Microsoft Dataverse documentation
    Dataversedocumentation-PowerApps|MicrosoftLearn GetstartedOverviewWhatisDataverse?WhychooseDataverse?ImproveCopilotresponsesTrainingIntroductiontoDataverse......
  • Echarts图表知识点汇总及请求django服务器后端跨域问题解决
    1.引入echartsvue3中通过npm引入:npminstallecharts--saveimport*asechartsfrom'echarts';//基于准备好的dom,初始化echarts实例varmyChart=echarts.init(document.getElementById('main'));//绘制图表myChart.setOption({title:{text:'ECha......