美文网首页
JavaScript的跨域请求jsonp

JavaScript的跨域请求jsonp

作者: Cathy_Liu | 来源:发表于2016-08-26 16:29 被阅读27次

在前端开发中我们都会遇到跨域请求的问题,因为JavaScript的同源策略,这是一个很重要的安全性限制,这一策略是JavaScript的代码只能访问在同一域名下的内容,不同域名下的脚本不能互相访问,子域也不能访问。
采用JSONP跨域请求是一个很好的方法,但是该方法只适用于GET请求。
JSONP跨域的主要步骤是:
1.前端创建script标签,设置src(因为script标签的src可以包含来自外部域的文件,与img,iframe标签类似)
2.后台返回一个js变了jsonp,这个jsonp就是请求后的json数据
3.回调完成后删除script标记(避免浏览器内存泄漏)
例如:
<script type="text/javascript">
// 得到查询结果后的回调函数
var flightHandler = function(data){
alert("跨域请求成功"+data.name);
};
// 提供jsonp服务的url地址(不管是什么类型的地址,最终生成的返回值都是一段javascript代码)
var url = "http://www.baidu.com/a.js";
// 创建script标签,设置其属性
var script = document.createElement('script');
script.setAttribute('src', url);
// 把script标签加入head,此时调用开始
document.getElementsByTagName('head')[0].appendChild(script);
</script>

a.js文件代码如下:
localHandler({"name":"我是a.js带来的数据"});

这个实例把远程服务器上的a.js写死了,为了更灵活,可以在传入url是设置参数,这样可以告诉服务器我需要什么样的函数,你生成返回给我。

这是个简单的例子,关于跨域还有很多其他的方法,继续学习~希望在前端开发这条路会越走越远!

相关文章

  • js跨域问题

    来源 javascript中实现跨域的方式总结 第一种方式:jsonp请求;jsonp的原理是利用 标签的跨域特性...

  • jsonp

    参考:轻松搞定JSONP跨域请求参考:JavaScript 跨域总结与解决办法要理解跨域,先要了解一下“同源策略”...

  • ajax跨域请求

    ajax跨域请求(jsonp) 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案JSONP jQue...

  • 跨域

    ??JSONP只能解决GET请求跨域,不能解决POST请求跨域问题,XHR2可以解决GET,POST方式的请求跨域...

  • 做demo和学习过程当中遇到的一些问题,收集的博文

    轻松搞定JSONP跨域请求--->关键字: 跨域, 同源策略, JSONP原理 git拉取远程分支到本地 git ...

  • 珠峰 AJAX --- JSONP跨域

    珠峰 AJAX --- JSONP跨域AJAX(异步 javascript and XMLHTTPReq...

  • JavaScript - GET/POST及跨域方法

    xhr 原生方法请求 window fetch 方法 关于跨域 利用JSONP实现跨域调用 使用 CORS(跨域资...

  • JavaScript的跨域请求jsonp

    在前端开发中我们都会遇到跨域请求的问题,因为JavaScript的同源策略,这是一个很重要的安全性限制,这一策略是...

  • 关于 jsonp 的错误

    背景:使用原生 javascript ,写 jsonp 的可跨域请求逻辑,不间断发送心跳。 大失误:由于心跳包是每...

  • JSONP技术原理及实现

    转自《跨域jsonp的原理》 首先确定为什么要用jsonp,因为要跨域请求数据,那为什么会发生跨域呢,因为浏览器的...

网友评论

      本文标题:JavaScript的跨域请求jsonp

      本文链接:https://www.haomeiwen.com/subject/kmlzsttx.html