Kros的博客 Kros的博客
首页
  • CSS
  • 工具
  • Vue
  • js
  • Vue3
  • 算法
  • 折腾笔记
一言
  • 分类
  • 标签
  • 归档
码云

Kros

凡心所向,素履以往,生如逆旅,一苇以航
首页
  • CSS
  • 工具
  • Vue
  • js
  • Vue3
  • 算法
  • 折腾笔记
一言
  • 分类
  • 标签
  • 归档
码云
  • CSS

  • JavaScript

  • 工具

    • git命令行
    • uniapp小程序分包配置
    • VScode使用Todo tree实现待办查看
    • activiti editor添加自定义属性
    • uniapp使用svg
    • windows端口查看及关闭端口
    • uniapp通过wifi无线运行到手机
    • android生成证书文件
    • vscode中显示换行指示线
    • 浏览器console输出自定义样式内容
    • console的非常规用法
    • uniapp App升级更新
    • 从零开始搭建脚手架1
    • vite打包插件上传到npm
    • uniapp使用speech模块遇到的问题
    • HbuilderX使用MuMu模拟器
    • HbuilderX调试app页面元素
    • 前端工程化的理解
    • console log打印obj非实时性数据问题
    • 常见http状态码
    • HbuilderX配置自定义打包环境
    • webpack优缺点
    • axios和ajax的区别
    • 使用docxtemplater导出word文件
    • docxtemplater循环列表数据导出
    • js打开钉钉打卡页面
    • uniapp配置自定义环境变量和条件编译变量
    • 文件上传时的各种二进制数据关系
    • 解决开发过程中的跨域问题
    • vue自定义入口html文件
    • tsParticles局部粒子效果
    • 使用verdaccio搭建私人npm仓库
  • Vue

  • antdv踩坑记录

  • Vue3

  • 前端
  • 工具
kros
2024-05-17

解决开发过程中的跨域问题

在开发过程中,有以下几种方式:

# 使用本地代理

在开发环境中,可以使用开发服务器(如Webpack Dev Server、Create React App的development server等)的代理功能。这些服务器允许你设置一个代理规则,将特定路径的请求转发到不同的源上。

// webpack.config.js 中的代理配置示例
module.exports = {
  // ...
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:4000', // 目标服务器地址
        changeOrigin: true, // 更改原始主机标头以与target匹配
        pathRewrite: {
          '^/api': '' // 重写路径
        }
      }
    }
  }
  // ...
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 使用JSONP方式

script标签不受同源策略影响,所以可以利用script的src属性来发起跨域的请求

<script src="http://api.com/api/jsonp?callback=success&name=zhangsan&sge=20"></script>

// 定义一个回调success
<script>
	function success(data){
        console.log("获取到数据");
        console.log(data)
    }
</script>
1
2
3
4
5
6
7
8
9

除开script外,form和img标签也可以作为跨域载体,详情使用见使用form进行跨域、使用img进行跨域

# 使用三方插件

使用三方浏览器插件,如Access-Control-Allow-origin、CORS Everywhere等,可以临时修改浏览器发送的HTTP请求头,允许跨域请求。

# 修改浏览器同源策略

以chrome为例,在启动浏览器时添加启动参数--disable-web-security既可,如下:

PS C:\Program Files\Google\Chrome\Application> ./chrome.exe --disable-web-security
1

# 服务器CORS跨域

后端API服务器正确设置了CORS响应头,控制API服务器,可以配置它以允许来自开发环境的特定域名的请求。

# 使用websocket跨域

websocket使用的是独立的websocket传输协议,不同与http协议,websocket协议允许跨域访问

var io = websocket.connect(‘[http://xx.xxx.xx.xx:8443](http://127.0.0.1:3001)’);

io.on(‘data’,function(data){

//根据返回值修改页面

});
1
2
3
4
5
6
7

使用websocket需要服务器端支持websocket,在实际项目过程中websocket多用于客户端通信很少用于跨域访问。

上次更新: 2025/09/05, 8:09:00
文件上传时的各种二进制数据关系
vue自定义入口html文件

← 文件上传时的各种二进制数据关系 vue自定义入口html文件→

最近更新
01
Find the next perfect square
09-05
02
Regex validate PIN code
09-05
03
Find the odd int
09-05
更多文章>
Theme by Vdoing | Copyright © 2020-2025 kros king
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
icon-heart-o icon-heart icon-infinity icon-pause icon-play link next prev