博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angular4跨域请求问题
阅读量:6443 次
发布时间:2019-06-23

本文共 1455 字,大约阅读时间需要 4 分钟。

hot3.png

 做项目遇到跨域问题网上查了很多都是复制黏贴其中有些没明白的地方,后来自己琢磨出问题所在,做了一些修改,希望能帮到刚入坑不久的朋友

  1. 跨域

跨域:

浏览器对于javascript的同源策略的限制,例如a.cn下面的js不能调用b.cn中的js,对象或数据(因为a.cn和b.cn是不同域),所以跨域就出现了.

上面提到的,同域的概念又是什么呢??? 简单的解释就是相同域名,端口相同,协议相同

同源策略:

请求的url地址,必须与浏览器上的url地址处于同域上,也就是域名,端口,协议相同.

比如:我在本地上的域名是study.cn,请求另外一个域名一段数据

这个时候在浏览器上会报错:

这个就是同源策略的保护,如果浏览器对javascript没有同源策略的保护,那么一些重要的机密网站将会很危险~

  1. 反向代理

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

  1. Angular4跨域

Angular4项目分为工程代码和生产代码,在本地调试一般都是工程代码,这样联调接口的话,每次写一个接口都要丢到服务器上测试,严重影响效率,所以我们需要做的就是能在工程项目上联调接口,随时能看到效果,但是后端代码不是部署在本机的话就会有跨域问题,于是我们便需要去着重去解决跨域问题!这样后端代码随时改,前端也可以随时更改看到效果,实现真正的前后端分离!

对于Angular4解决跨域问题,应该是开发者已经想到这个问题,所以解决这个问题很简单!那就是反向代理!!

下面介绍反向代理的方法:

  1. 首先需要建立一个JSON文件,文件名”proxy.config.json

 

{

  "/api":{

    "target":"http://192.168.12.203:8080"

  }

}

this.$http.post(`/api/front/frontUserController/login.do`,data)

     .then(res=>{

             Console.log(res);

})

 

 

2.这里"/api"不是固定的,比如你请求地址http://192.168.12.203:8080/icpms/regd/getRegBrand.do接口,把上面的内容改成下面

{

  "/icpms":{

    "target":"http://192.168.12.203:8080"

  }

}

然后把post里面的地址改成

this.$http.post(`/icpms/regd/getRegBrand.do`,data)

     .then(res=>{

             Console.log(res);

})

 

因为http://192.168.12.203:8080已经被代理到/api上,也就是/icpms!

3.然后配置”package.json”文件

 

"scripts": {

  "ng": "ng",

  "start": "ng serve  --proxy-config proxy.config.json",

  "build": "ng build  --prod --aot",

  "test": "ng test",

  "lint": "ng lint",

  "e2e": "ng e2e"

}

转载于:https://my.oschina.net/u/3717377/blog/1586227

你可能感兴趣的文章
获得本机的IP,掩码和网关
查看>>
大数据之 ZooKeeper原理及其在Hadoop和HBase中的应用
查看>>
Delphi中将XML文件数据装入DataSet
查看>>
你刚才在淘宝上买了一件东西
查看>>
发布一个 Linux 下的 C++ 多线程库
查看>>
Python序列类型
查看>>
再谈ThinkPHP
查看>>
mac本显示隐藏文件或关闭显示隐藏文件
查看>>
spring4.0 整合 Quartz 实现任务调度(一)
查看>>
android复杂布局的一点思路
查看>>
Awesome Python
查看>>
java web简单权限管理设计
查看>>
Google Analytics
查看>>
【转】什么是云计算
查看>>
MySQL 5.7及以上解压缩版本配置安装
查看>>
Extjs4.0 Chart属性中文解释
查看>>
PHP单例模式的实现
查看>>
httpClient post 数据传输和处理
查看>>
newLISP你也行 --- 字符串
查看>>
【译】Swift 2.0 下面向协议的MVVM架构实践
查看>>