跨域问题

1、浏览器同源策略

那浏览器为什么要有同源策略呢?
  当然是为了安全。没有同源策略限制的浏览器环境是非常危险的(即使有了同源策略也不是百分百安全)。
所谓的“同源”指的是“三个相同”
协议相同。不能一个是 http 协议,一个是 https
域名相同
端口相同

2、跨域

简单来说跨域问题是因为浏览器的同源策略导致的。

跨越的常见解决方法
1,JSONP:
利用<script>元素的开放策略(网页跨域得到从其他来源动态产生的JSON数据)来处理跨域限制,不过只能支持get方法;

2,CORS:

 //解除跨域的设置
 //允许哪些请求,可以写http://127.0.0.1:8080等具体ip和端口,
 //写*表示允许全部
 header('Access-Control-Allow-Origin:*');
 //允许哪些方法
 header('Access-Control-Allow-Methods:POST,GET');

3,WebSocket:
H5的一个持久化协议,它实现了浏览器与服务器的全双工通信,同时也是跨域的一种解决方案;

4,postMessage:
此方法window.postMessage方法允许跨窗口通信,不论这两个窗口是否同源;

5,直接解除浏览器同源安全策略:

这种方式在生产环境是不可能实现的,但是在本文提及的开发环境中却很好用。H5开发者只要解除自己浏览器的同源安全策略,就可以毫无障碍的访问测试服务器做测试联调,而不需要后台服务器做CORS设置。个人学习可以随便玩,如果在工作中使用,需要谨慎。下面上方法:

桌面新建一个谷歌浏览器快捷方式=>左键选中这个新建的快捷方式 右键 属性 目标 在目标后路径\chrome.exe"后面,空一格添加如下后缀 –disable-web-security --user-data-dir 点击确定最后重启浏览器,操作完成。
图示如下
在这里插入图片描述重启浏览器后出现如下标识说明初步设置成功,可以去尝试请求了:
在这里插入图片描述
如果请求不到数据并报如下错误,说明配置失败,请重新配置,否则请检查HTTP请求代码:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值