使用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实现可拖动DIV自定义保存到数据的实例
Nov 20 Javascript
Jquery焦点图实例代码
Nov 25 Javascript
深入浅出 jQuery中的事件机制
Aug 23 Javascript
vue 项目如何引入微信sdk接口的方法
Dec 18 Javascript
React中的refs的使用教程
Feb 13 Javascript
利用Decorator如何控制Koa路由详解
Jun 26 Javascript
webstrom Debug 调试vue项目的方法步骤
Jul 17 Javascript
vue二级菜单导航点击选中事件的方法
Sep 12 Javascript
jQuery实现购物车的总价计算和总价传值功能
Nov 28 jQuery
关于js陀螺仪的理解分析
Apr 11 Javascript
vue 使用 canvas 实现手写电子签名
Mar 06 Javascript
Vue 的双向绑定原理与用法揭秘
May 06 Javascript
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输出当前进程所有变量/常量/模块/函数/类的示例
2013/11/07 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
JS面向对象编程浅析
2011/08/28 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
JS实现在网页中弹出一个输入框的方法
2015/03/03 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
AngularJS 过滤器(自带和自建)详解
2016/09/19 Javascript
简单的js表格操作
2016/09/24 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
2018/07/21 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
vue 实现websocket发送消息并实时接收消息
2019/12/09 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
跟老齐学Python之print详解
2014/09/28 Python
linux 下实现python多版本安装实践
2014/11/18 Python
Python2中的raw_input() 与 input()
2015/06/12 Python
Python中文竖排显示的方法
2015/07/28 Python
浅谈django中的认证与登录
2016/10/31 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
一份软件工程师的面试试题
2016/02/01 面试题
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
女性健康知识讲座主持词
2015/07/04 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL