跨域解决方案 & 使用angularJS和jQuery进行Ajax请求的差异

前端同学李雷和后台同学韩梅梅分别在自己电脑上进行开发,后台接口写好的时候,李雷改动完就把前端代码上传到gitlab,然后在测试机上从gitlab上拉下来,然后在测试机上移动最新代码,最后回到本机刷新页面。有时候碰到网速不好的情况传个git传了半天,或者李雷刚上传完发现少写了一个单词,加上再传上一看尼玛单词又写错了。对于实时需要改动代码的李雷同学而言

zhixi.JPG

另外一种方案是李雷和韩梅梅分别在自己电脑上进行开发,韩梅梅写完一个接口,李雷马上在本地调用接口进行请求,有需要改动的地方,改完按下F5,看到的就是最新的。perfect!

既然这样,为什么不选用方便快捷的后者呢。后者会遇到哪些问题?这里就要好好扯一下跨域了。

什么是跨域?

浏览器的同源策略限制了一个源(origin)中加载文本或脚本与来自其它源(origin)中资源的交互方式。如果两个页面的协议(protocol)、端口(如果指定)、和主机任一不相同,则他们就不是同源的,在他们之间进行请求则认为是跨域。

跨域的解决办法

跨域的解决方案主要有JSONP、改变domain、CORS等等,因为项目适用于使用CORS,所以我们在项目中使用此方案,这里也只讨论CORS。

CORS

CORS(Cross-Origin Resource Sharing)跨域资源共享,定义了必须在访问跨域资源时,浏览器与服务器应该如何沟通。CORS背后的基本思想就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功还是失败。
换句话说,就是服务器在响应头里设置好允许哪些地址访问(通过Access-Control-Allow-Origin设置),当浏览器收到服务端响应时,查看这个字段,如果包含请求方的地址或设置为了*,则允许此次跨域。

那么,我们在项目里只需要在服务端设置好Access-Control-Allow-Origin头,即可允许前端同学发起的请求跨域。

对于php而言,即设置:

header('Access-Control-Allow-Origin: *');

这样就能愉快的跨域了!

看到这里的时候,国存和昕晨一定是这个表情

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值