跨域

有几种跨域方式

  1. 协议跨域,例如从 http 站点访问 https 站点。
  2. 主机跨域,例如从 a.baidu.com 访问 b.baidu.com
  3. 端口跨域,例如从80端口的站点访问8080端口的站点。

谈起Jsonp在跨域处理方案中也算鼎鼎大名,这是一种非官方的解决方案,源于浏览器允许一些带src属性的标签跨域,例如iframe、script、img等。而Jsonp即是利用了script加载外部脚本的功能。

方案虽然可行,但也同时意味着jsonp只能发起get请求,对于post就无能为力了。

常见的和自己熟悉有几种方案

如:
1、用cros;
2、用代理;
3、使用jsonp

jsonp 作为一种跨域的解决方案

意思是用跨域的时候会出现不同源的安全机制。但是呢 js img a链接等就不会被安全机制干扰

那么怎么处理呢
在js里面 使用回调函数 callback=addNum

没错就是使用回调,首先说一下思路:
1、首先在页面中定义好回调函数;
2、然后在页面通过插入相关标签待query参数的形式实现jsonp请求传递回调函数名字;
3、后台得到回调函数名字,并将需要处理的数据传递给回调函数,最后向前台返回回调函数的“调用”,

跨域解决方案之CORS

CORS,也即 Cross-Origin Resource Sharing(跨域资源共享),它需要现代浏览器的支持,是一种更安全的官方解决方案。

CORS使得以下常见场景得到支持:
1. 使用 XMLHttpRequest 或 Fetch 发起跨站 HTTP 请求。
2. web 字体(css 中通过 @font-face 使用跨站字体资源)
3. 使用 drawImage 绘制 Images/video 画面到 canvas

● 只使用 GET 、HEAD 或者 POST 发起请求,如果使用 POST ,那么其数据类型( Content-Type )只能是 application/x-www-form-urlencoded、 multipart/form-data 或text/plain中的一种。
● 不使用自定义请求头

这种跨域请求非常简单,只需要后端在返回的响应头中添加Access-Control-Allow-Origin属性并将被允许的站点填入即可(多个站点逗号隔开,允许所有站点则设为*)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值