web前端协议跨域解决

轩辕暗神 7月前 ⋅ 531 阅读

因为浏览器的安茜策略,https的项目无法发起http请求, 需求描述: 1、线上项目做了ssl证书,通过https进行访问,因为项目升级,现在增加了一个内网视频播放设备他任何请求都可以),用户在浏览器访问服务器,拿到视频流,把视频流转发给播放设备。 2,线上项目是https,内网设备是通过http请求,浏览器就不好解决了。 解决思路: 使用用户电脑,建立一个本地的代理,让需要比如原本请求http://192.168.0.2/xxx/xxx的消息变成https://localhost:xxxx/proxy/xxxx/xxx的形式,转发到192.168.0.2上不就可以解决了 然后通过浏览器调用外部应用的方式按需启动和停止程序也不会造成用户电脑资源的额外浪费 使用工具:nginx windows版本解决工具: nginx本地代理 提取码:614j

其中【nginx本地代理】是原始文件,【bigstat.zip】是设置好的安装程序, 使用方法:

1、解压bigstat.zip
2、双击运行install.exe
3、启动和停止:
    在浏览器中输入myappStart://start回车即可启动程序,即发起请求内容:myappStart://start
    在浏览器中输入myappstop://stop回车即可停止程序,即发起请求内容:myappstop://stop
4、验证启动:
    程序开启了5000端口(http)和5001端口(https)
    PS:
      当本项目为http项目时请求http:localhost:5000
    当本项目为https项目时请求https:localhost:5001
5,启用转发:
    转发参数为:X-Target-Host,url,
  X-Target-Host放入请求头中,url在正常链接中拼接一层代理(/proxy、/proxys)
示例:
    假设1:
    1、本项目是https项目,
    2、目标请求项目也是https项目
    3、原始请求为:https://wxf.00e.com/app/appPort/fhjcByUserId?userId=1826185382878896130&page=1&pageNumber=20
拼接后发起请求为:https://localhost:5001/proxys/app/appPort/fhjcByUserId?userId=1826185382878896130&page=1&pageNumber=20,然后把wxf.00e.com放入请求头中

    假设2:
    1、本项目是https项目,
    2、目标请求项目也是http项目
    3、原始请求为:https://wxf.00e.com/app/appPort/fhjcByUserId?userId=1826185382878896130&page=1&pageNumber=20
拼接后发起请求为:https://localhost:5001/proxy/app/appPort/fhjcByUserId?userId=1826185382878896130&page=1&pageNumber=20,然后把wxf.00e.com放入请求头中

6、使用结束后一定要关闭本项目
    在浏览器中输入myappstop://stop回车即可停止程序,即发起请求内容:myappstop://stop

补充一点: 浏览器调用外部应用的方式是把程序的启动和停止命令脚本,放入注册表当中即可


全部评论: 0

    我有话说: