当前位置: 首页 > news >正文

前端请求浏览器提示net::ERR_UNSAFE_PORT的解决方案

起因

项目中后端给到了6666端口的服务地址, 随即前端项目访问中浏览器报错如下:
net::ERR_UNSAFE_PORT
不安全端口在主流浏览器(Chrome/Firefox/Edge/Safari)中会被拦截,触发浏览器Network的status列显示 net::ERR_UNSAFE_PORT 错误, 以下是常见的不安全端口一览表:

端口范围常见被禁端口示例
系统保留1, 7, 9, 11, 13, 15, 17, 19, 20, 21, 22
高危服务23 (Telnet), 25 (SMTP), 37 (Time), 42 (DNS)
传统协议53 (DNS), 77 (私用), 79 (Finger), 87 (TTY)
常见被禁666 (Doom), 6665-6669 (IRC/游戏), 1243 (攻击工具)
其他1524, 2049 (NFS), 6000 (X11), 6566 (恶意软件)

​因为设计之初是防止恶意网页通过浏览器直接访问敏感服务(如数据库、邮件服务器), 所以我们在使用中需要避开这些特定端口.

解决方案(推荐)

后端把端口修改成8080等安全端口即可

​开发中临时解决方案​(不推荐):

方案一: Chrome 启动时允许特定端口

google-chrome --explicitly-allowed-ports=6666,6667 (本文使用的端口是6666, 改成你使用的端口)

方案二: vue2项目配置代理

代理大部分是用来临时解决跨域用的, 不巧的是也能解决不安全端口问题

// axios请求配置
axios.baseURL =/dev-api’  // 当然你的项目baseURL是动态的, 在.env.development上配置, 但是最终都是赋值给请求. 因为每个人的项目都不一样, 所以本文教程显示是最终赋值.

vue项目环境变量
axios使用环境变量

// vue.config.js文件配置
module.exports = {...,devServer: {// 开发服务器配置host: "0.0.0.0", // 监听所有网络接口(允许通过IP访问)port: 8080, // 定义的端口号open: true, // 启动后自动打开浏览器	  // 代理配置(解决跨域问题)proxy: {"/dev-api": { // 代理前缀(前端请求需以/dev-api开头)target: `http://192.168.xxx.xx:6666/admin`, // 实际后端地址changeOrigin: true, // 修改请求头中的Host为目标地址(解决虚拟主机问题)secure: false, // 如果是https接口但证书不受信任,需设为false(开发环境用)// 路径重写规则pathRewrite: {"^/dev-api": "" // 移除实际请求路径中的/dev-api前缀(浏览器看着还是有dev-api)},logLevel: "debug" // 打印详细的代理调试日志(查看实际请求http://192.168.xxx.xx:6666/admin, 因为浏览器请求始终显示的是127.0.0.1:8080/dev-api的请求地址)}},// 安全性配置disableHostCheck: true // 禁用Host头检查(允许任意域名/IP访问,开发环境临时方案)}

浏览器看着一切如常
logLevel设置为"debug"就能看到实际请求已成功代理

[HPM] Rewriting path from “/dev-api/user/create/img” to “/user/create/img” // 重写地址
[HPM] GET /dev-api/user/create/img ~>http://192.168.xxx.xx:6666/admin // 实际请求

http://www.dtcms.com/a/264503.html

相关文章:

  • WPF路由事件:冒泡、隧道与直接全解析
  • 【Harmony】鸿蒙企业应用详解
  • 小型水电站综合自动化系统的介绍
  • 计算机组成笔记:缓存替换算法
  • QT6 源(147)模型视图架构里的表格窗体 QTableWidget 的范例代码举例,以及其条目 QTableWidgetItem 类型的源代码。
  • Re:从零开始的 磁盘调度进程调度算法(考研向)
  • Node.js 安装使用教程
  • Spring 生态创新应用:微服务架构设计与前沿技术融合实践
  • Kuikly 与 Flutter 的全面对比分析,结合技术架构、性能、开发体验等核心维度
  • 对于3DGS的理解
  • Redisson 与 Java 驻内存数据网格:分布式缓存的高可用解决方案
  • 【强化学习】深度解析 GRPO:从原理到实践的全攻略
  • 微信小程序入门实例_____打造你的专属单词速记小程序
  • 【并发编程】AQS原理详解笔记1
  • 基于SpringBoot和Leaflet的区域冲突可视化系统(2025企业级实战方案)
  • 服务器异常宕机或重启导致 RabbitMQ 启动失败问题分析与解决方案
  • 使用tensorflow的线性回归的例子(五)
  • 界面组件DevExpress WPF中文教程:Grid - 如何获取节点?
  • 【办公类-53-05】20250701Python模仿制作2025学年第一学期校历(excel+pdf)
  • 计算机网络(五)数据链路层 MAC和ARP协议
  • Mabl 基于云端的智能化自动化测试平台
  • 解决Python升级后CMD仍显示旧版本:环境变量优先级问题详解
  • vue中ref()和reactive()区别
  • 聚类算法学习
  • PAL(程序辅助语言模型)技术详解
  • 通讯录管理系统设计与实现(C++)
  • URL时间戳参数深度解析:缓存破坏与前端优化的前世今生
  • 调试 WebView 旧资源缓存问题:一次从偶发到复现的实战经历
  • 安装Pillow失败,无libjpeg包
  • OWASP Top 10 是什么?