使用jsonp实现跨域获取数据实例讲解


Posted in Javascript onDecember 25, 2016

js部分

(function(window, document) {
  'use strict';
  var jsonp = function(url, data, callback) {
    //1、挂载回调函数
    var fnsuffix = Math.random().toString().replace('.', '');
    var cbFuncName = 'my_json_cb' + fnsuffix;
    window[cbFuncName] = callback;
    //2、将data转换成url字符串的形式
    //{id=1,count=4}==>id=1&count=4
    var querystring = url.indexOf('?') == -1 ? '?' : '&';   //判断url中最后是否有?,没有则为?
    for (var key in data) {
      querystring += key + '=' + data[key] + '&';
    }
    //3、处理url中回调函数 url+=callback=sdgade
    querystring += 'callback=' + cbFuncName;
    //querystring=?id=1&count=4&callback=sdgade
    //4、创建一个script标签
    var scriptElement = document.createElement('script');
    scriptElement.src = url + querystring;
    //5、把script标签放到页面上
    document.body.appendChild(scriptElement);
  };
  window.$jsonp = jsonp;
})(window, document)

在页面中测试

<!DOCTYPE html>
<html>
<head>
  <title>jsonp</title>
</head>
<body>
  <div id="htt"></div>
  <script type="text/javascript" src="http.js"></script>
  <script>
    (function(){
      $jsonp('http://api.douban.com/v2/movie/in_theaters',{},  
        function(data){
          document.getElementById('htt').innerHTML=JSON.stringify(data);
        });
    })()
  </script>
</body>
</html>

结果可以返回结果,页面显示为,表示获取成功!

以上所述是小编给大家介绍的使用jsonp实现跨域获取数据实例讲解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery.query.js 取参数的两点问题分析
Aug 06 Javascript
Function.prototype.call.apply结合用法分析示例
Jul 03 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
Jun 05 Javascript
微信小程序 实现拖拽事件监听实例详解
Nov 16 Javascript
jQuery中库的引用方法
Jan 06 jQuery
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
Aug 22 Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
Jan 27 Javascript
关于Vue源码vm.$watch()内部原理详解
Apr 26 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
Aug 20 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
Aug 03 Javascript
多种类型jQuery网页验证码插件代码实例
Jan 09 jQuery
JavaScript中数据类型转换总结
Dec 25 #Javascript
javascript实现用户点击数量统计
Dec 25 #Javascript
jQuery扩展+xml实现表单验证功能的方法
Dec 25 #Javascript
js实现图片切换(动画版)
Dec 25 #Javascript
根据Bootstrap Paginator改写的js分页插件
Dec 25 #Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
Dec 25 #Javascript
jQuery实现圣诞节礼物传送(花式轮播)
Dec 25 #Javascript
You might like
PHP下MAIL的另一解决方案
2006/10/09 PHP
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
2015/09/14 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
将JSON字符串转换成Map对象的方法
2016/11/30 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
Python数据可视化图实现过程详解
2020/06/12 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
专门经营化妆刷的美国彩妆品牌:Sigma Beauty
2017/09/11 全球购物
德国机车企业:FC-Moto
2017/10/27 全球购物
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
毕业生自我鉴定
2013/11/05 职场文书
运动会解说词50字
2014/01/18 职场文书
党员查摆剖析材料
2014/10/10 职场文书
一般纳税人申请报告
2015/05/18 职场文书
消费者理赔投诉书
2015/07/02 职场文书
蓝天保卫战收官在即 :15行业将开展环保分级评价
2019/07/19 职场文书
如何用python反转图片,视频
2021/04/24 Python
Python的property属性详细讲解
2022/04/11 Python
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python