一个最简单的代理例子:index.html中有如下代码

fetch('/api/pub/article/list?pageSize=2').then((data)=>{
return data.json()
}).then((json)=>{
console.log(json)
})

里面访问的是相对地址,但我本地并没有服务器有提供这些api。把以上的路径补全为云服务器上的绝对路径,但是又报CORS错误。

解决办法是配置一个代理。这里通过webpack-dev-server实现,简单的配置文件如下:

module.exports = {
entry: {
bundle:'./main.js',
},
output: {
filename: '[name].js'
},
devServer: {
port: 8889,
host: '127.0.0.1',
proxy: {
'/api/*': {
target: 'http://123.207.95.11:9001'
}
}
}
};

接着运行(以当前目录作为静态文件的根目录):

webpack-dev-server --content-base ./

访问 http://127.0.0.1:8889/index.html ,以上代码可以正常执行了。

对于以上的配置和运行指令,做了如下事情:

  1. 监听 127.0.0.1:8889,以当前目录(content-base参数指令的目录)作为静态文件的根目录
  2. 访问index.html,里面发出的请求是相对地址,也就是访问了这个地址 127.0.0.1:8889/pub/.....
  3. 因为webpack-dev-server读取以上的配置文件,这个请求匹配了 /api/* ,就把这个请求转发到了对应的target处,也就是http://123.207.95.11:9001这个地址下了。也就是请求 浏览器 -> webpack-dev-server -> 127.207.95.11 。
  4. 最后把响应数据传递到浏览器。  也就是 127.207.95.11 -> webpack-dev-server -> 浏览器

最新文章

  1. POJ 3414 Pots
  2. 原生JS:Object对象详细参考
  3. java 24 - 5 GUI之 鼠标移动改变窗体背景颜色
  4. $().change事件
  5. 布局常见问题之css实现多行文本溢出显示省略号(…)全攻略
  6. mysql生成百万级数量测试数据
  7. 理解maven的核心概念
  8. Bootstrap3 栅格系统-嵌套列
  9. django(权限、认证)系统—— 基于Authentication backends定制
  10. python3安装sklearn机器学习库
  11. 【朝花夕拾】Lint使用篇
  12. PL/SQL变量和类型
  13. Daily Scrumming* 2015.12.19(Day 11)
  14. PyQt5--QProgressBar
  15. Java秒杀简单设计一:搭建springboot环境
  16. mysql rowid实现
  17. matlab sparse()
  18. list(range())--------range创建一个list列表 遍历索引range(len()) 和 list(range())创建列表
  19. Java运算符使用总结(重点:自增自减、位运算和逻辑运算)
  20. SpringBoot入门学习(三)

热门文章

  1. bzoj1130:[POI2008]POD Subdivision of Kingdom
  2. NEERC2017:L - Laminar Family
  3. Codeforces Round #532(Div. 2) B.Build a Contest
  4. NOI2012 D2T1扩展欧几里得
  5. 100 Same Tree 相同的树
  6. Docker与虚拟机
  7. nginx 日志 log_format 及字段说明
  8. 用redis实现简单的队列
  9. php调用c# webservice方法
  10. Android recyclerview 只显示一行 宽度不适配