前端跨域请求原理及实践

来源:互联网 发布:sql server 官网 编辑:程序博客网 时间:2024/06/05 04:58

一、 跨域请求的含义

一般的,只要网站的 协议名protocol主机host 端口号port这三个中的任意一个不同,网站间的数据请求与传输便构成了跨域调用。这说明跨域请求并非是浏览器限制了发起跨站请求,而是请求可以正常发起,到达服务器端,但是服务器返回的结果会被浏览器拦截。

二、 利用 JSONP实现跨域调用

JSONP JSON的一种使用模式,可以解决主流浏览器的跨域数据访问问题。其原理是根据 XmlHttpRequest 对象受到同源策略的影响,而 <script>标签元素却不受同源策略影响,可以加载跨域服务器上的脚本,网页可以从其他来源动态产生 JSON 资料。用 JSONP获取的不是 JSON 数据,而是可以直接运行的 JavaScript语句。

        2.2 使用 jQuery集成的 $.ajax 实现 JSONP跨域调用

        2.3 使用 <script>标签原生实现 JSONP只能使用 GET方法发起请求,这是由于 script 标签自身的限制决定的。由于不是通过 XmlHttpRequest进行传输,所以不能注册 success error 等事件监听函数。

三、 使用 CORS实现跨域调用

四、一些其它的跨域调用方式

原创粉丝点击