跨域通信的几种方法

跨域通信
	概念
	直接跨域会导致什么问题?
		请求被拦截,提示没有允许跨域
	跨域方式
		CORS跨域
			跨域资源共享
				服务端设置响应头部:Access-Control-Allow-Origin,允许请求源
		jsonp跨域
			jsonp的工作原理,如何执行
			使用方式
				请求携带回调函数
				响应方拿到回调函数,并传入参数,并返回
		postMessage跨域
			使用场景:同一页面的父子窗口
			使用方式
				发送消息:父页面通过子页面的窗口代理向子页面发送消息
				接收消息:监听message事件,,通过事件处理器获取消息体,(并可验证消息源)
		window.name跨域
			window.name的特点:
				每一个窗口共享window.name
				窗口存在期间,载入的所有页面拥有该参数的读写权限
				window.name可以存储不超过2M的数据,数据格式可自定义
			使用方式
				在a页面,添加iframe,设置src为目标页面,待iframe加载结束,修改iframe的src指向同源页面,再访问iframe窗口对应的name属性
		location.hash跨域
			同源数据互访
			使用方式
				在a页面,添加iframe,设置src为目标页面c,将目标页面的数据,添加到子窗口b页面的url路径上,b页面可直接修改a页面的hash
		后端设置代理跨域
			原理:因为JS同源策略是浏览器的安全策略,所以在浏览器客户端不能跨域访问,而服务器端调用HTTP接口只是使用HTTP协议,不会执行JS脚本,不需要同源策略
			使用方式
				前端发出同源请求,服务端转发请求,并返回结果
		document.domain跨域
		websocket跨域
			该协议不实行同源策略
			使用方式:客户端发起连接,之后监听事件,获取数据
		form表单跨域
			原理:form只是提交数据,不会返回数据,js脚本不会读取跨域数据
			使用方式:使用form提交请求,使用postmessage返回数据
		关闭浏览器跨域限制
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值