前端跨域解决 (vscode live server proxy 代理)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端跨域解决 (vscode live server proxy 代理)相关的知识,希望对你有一定的参考价值。

参考技术A 这个显然是处理前端跨域最优的方法了,在此记录下来方便以后使用,附送scss 转 css

使用 vscode IDE作为编写工具

1.搜索并加载 vscode 插件 live server
2.要文件根目录创建 ".vscode" 目录
3.在 .vscode 目录下创建settings.json
4.proxUri 为代理的目标地址
5.baseUri 识别代理的符号 (如下例中 baseUri: '/api', 则以"/api"开头的网络请求都将被识别为需要代理转发的地址,并把 ‘/api’重写为空"")

1.ajax请求会受到浏览器同源策略的限制(同源 = 域名 + 端口 都一致)
2.ajax请求默认携带 同源下的所有cookie, 如果不做限制 a 去请求 b 的时候就等于把a所有的cookie 都告诉b。
3.同源下: 张三的网站只能访问张三的内容如鞋子衣服吃饭等等,如果想访问李四的,浏览器就不让你干了。如果充许这么干的话,张三的cookie隐私将直接暴露给李四,李四有可能干一些不怀好意的事情。
4.跨域情况:张三把钱都放在李四那里,现在张三想去李四那边取钱,这时候就需要跨域了。
5.跨域怎么解决呢?接下来把解决问题的思路简单描绘一下。
5.1:李四告诉全世界说我对钱不感兴趣,只要我有,你们所有人都随便来取。因此,当浏览器看到张三要取钱的人是李四这种慈善家,就不再拦着你了。
5.2:李四不是慈善家怎么办?于是张三这个时候就很讨厌浏览器,想了个办法绕过浏览器,然后另外找了个代理去跟李四取钱
5.2.1: 问题是绕过浏览器?怎么绕呢? 于是张三自己建了个服务器,每次要跟李四取钱的时候就欺骗浏览器说我要跟自己的服务器取钱,浏览器这个时候也就不再拦着你了
5.2.2:当张三自己的服务器接收到跟李四取钱任务后,就以proxy代理的身份向李四取钱,取完钱之后再通过浏览器给了张三
5.2.3:vscode 中的live server 插件里面就这个代理向李四取钱的代理服务器功能,本文settings.json 中包含了配置信息
6.当然还有一些很多牛叉的解决跨域的方法。若有兴趣的同学可以一起研究探讨。

通过设置Ionic-Cli代理解决ionic serve跨域调试问题

Ionic-Cli代理设置:

打开ionic.config.json文件,添加proxies代理配置字段:

{
  "name": "ion",
  "app_id": "",
  "v2": true,
  "typescript": true,
  "proxies": [
    {
      "path": "/web",
      "proxyUrl": "http://127.0.0.1/phpResty/web"
    }
  ]
}

  

之后在provider中这样调用即可:

  url:string = "/web/";
  api(){
    return new Promise((resolve, reject)=>{
      this.http.get(this.url + "api.php").subscribe(res => {
        resolve(res.json)
      }, err => {
        reject(err);
      });
    });
  }

  

此时访问 http://localhost:8100/web/api.php 等同于访问 http://127.0.0.1/phpResty/web/api.php

从而避开了因端口不同而产生的跨域问题。

 

 

参考:http://www.jianshu.com/p/e9c85dbf406d

http://blog.csdn.net/haozhoupan/article/details/51149896

以上是关于前端跨域解决 (vscode live server proxy 代理)的主要内容,如果未能解决你的问题,请参考以下文章

vs code之Live Server的使用(搭建本地服务器)

安装node.js作为前端的live-server

通过设置Ionic-Cli代理解决ionic serve跨域调试问题

VSCode配置之open-with-Live-Server 无法打开浏览器解决方法

如何解决前端跨域问题?

vs code 前端如何以服务器模式打开