Mac和Window的Chrome浏览器跨域完美解决方案 | 开发调试必备(接口跨域、本地调试)

几种最简单高效的Chrome浏览器跨域解决方案:

  1. 命令行启动方式(最简单)
# Windows
chrome.exe --disable-web-security --user-data-dir=任意空文件夹路径

# Mac
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=任意空文件夹路径

或者
2.手动创建(教程清晰)

Window教程
第一步:复制一份chrome浏览器在桌面,重命名(用于区分跨域和非跨域)
在这里插入图片描述
第二步:在c盘新建一个文件夹,命名为MyChromeDevUserData
第三步:右键点击第一步复制出来的chrome浏览器,点击属性,来到快捷方式,将 --disable-web-security --user-data-dir=C:\MyChromeDevUserData,–user-data-dir粘贴在目标一栏的最后,点击确定
在这里插入图片描述
Mac教程
创建一个开启跨域的chrome

1.command+ 空格打开,输入automator回车打开automator
2.选择应用程序,点击选取
3.选择实用工具中的shell脚本,双击之后输入

open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/[yourname]/MyChromeDevUserData/

在这里插入图片描述

4.关闭并重命名,选择好位置,保存到应用程序,点击存储

在这里插入图片描述

5.查看 Launchpad 中,就有这个跨域的图标了

  1. Chrome扩展插件(推荐)
  • 安装 “Allow CORS: Access-Control-Allow-Origin” 插件
  • 点击插件图标开启即可
  • 优点:无需重启浏览器,随开随用
  1. 前端临时解决方案(开发阶段)
// 使用代理服务
const proxy = {
  '/api': {
    target: 'http://目标域名',
    changeOrigin: true,
    pathRewrite: {
      '^/api': ''
    }
  }
}

45 JSONP方式(适用于GET请求)

function jsonp(url, callback) {
  const script = document.createElement('script')
  script.src = url + '?callback=' + callback
  document.body.appendChild(script)
}

注意事项:

  • 以上方法主要用于开发调试阶段
  • 生产环境建议使用正规的跨域解决方案(CORS、代理等)
  • 命令行方式会创建新的Chrome实例,不影响原有的浏览器配置
  • 使用完跨域调试后记得关闭相关配置,以免安全隐患

推荐使用顺序:

  1. 优先使用CORS插件(最方便)
  2. 如果插件无效,尝试命令行方式或手动创建跨域浏览器
  3. 开发环境可以配置代理
  4. 特殊场景才考虑JSONP
### 配置 Nginx 解决 CORS 访问 #### 安装 Nginx 在 Windows 上安装 Nginx 是第一步。可以从官方网站下载适用于 Windows 的版本并按照说明完成安装。 #### 修改 Nginx 配置文件 编辑 `nginx.conf` 文件,通常位于安装目录下的 conf 文件夹内。为了处理资源共享 (CORS),需要向 HTTP 或 server 块中添加特定的头信息: ```nginx http { ... server { listen 80; server_name localhost; location / { if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain charset=UTF-8'; add_header 'Content-Length' 0; return 204; } if ($request_method = 'POST') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; } if ($request_method = 'GET') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; } try_files $uri $uri/ =404; } } } ``` 这段配置允许来自任何源的 GET POST 请求,并响应预检请求(OPTIONS 方法),从而解决了常见的 CORS 错误[^1]。 对于更复杂的场景,比如只允许某些特定名发起请求,则可以根据实际情况调整 `Access-Control-Allow-Origin` 头部的内容,例如使用正则表达式匹配合法的来源地址[^3]。 重启 Nginx 服务使更改生效。可以通过命令行工具执行如下指令来启动或重新加载 Nginx: ```bash start nginx # 启动 Nginx nginx -s reload # 平滑重载配置而不中断现有连接 ``` 以上操作完成后,在浏览器控制台应该不会再见到由于缺少必要的 CORS 头而导致的错误消息了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值