JS-POST跨域

本文介绍了JavaScript中的跨域原理,重点讲解了CORS(Cross-Origin Resource Sharing)的两种方式:简单跨域和复杂跨域。在IE中,跨域通常使用XDomainRequest对象,而其他浏览器则使用XMLHttpRequest。简单跨域具有较多限制,如不支持响应头信息和cookie。复杂跨域通过preflight request支持更多自定义头部和带凭据的请求。
摘要由CSDN通过智能技术生成

 在js中如何实现CORS(cross origin resource sharing)跨源资源共享?
   在早期,有通过图像ping和JSONP来实现跨域,
(1)图像ping是利用设置img元素的特性,即一个页面中的图片可以来自其他域,可以通过js设置img的src属性来发起一个请求,并且通过onload和onerror方法可以监控是否加载成功或者失败,但缺点是浏览器不能接收到任何的数据,并且只能发起get请求。
(2)JSONP通过创建动态的script对象,通过设置script的src例如:“http://xxx.com/callback="handler"”,其中的callback是一个参数,其值handler是一个函数,用于处理从服务器返回的数据。function handler(textFromServer){console.log(textFromServer);}//其中textFromServer就是来自服务器的响应数据。
在出现CORS之后,各浏览器也都支持,只是支持的程度不一样。但简单的(即非Preflighted和不带凭据的请求)都支持。简单介绍一下Preflighted和带凭据请求:
(1)PreflightedRequest(预飞行请求,即在飞行之前(发起真正的请求之前,先发送一个options请求,确定是否可以发送))透明服务器验证机制支持开发人员使用自定义的头部。get或者post之外的方法,以及不同类型的主题内容。写了一个demo,但是在chrome中运行不通过,在firefox中可以。该类型的请求,首先会向服务器发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值