jsonp跨域获取数据的基础教程


Posted in Javascript onJuly 01, 2018

前言

由于浏览器有同源策略,所以要想获取非同源(协议,域名,端口三者有一不同都算非同源)的页面的数据,就得进行跨域

(1) jsonp原理

由于script标签的src属性可以访问非同源的js脚本,所以通过src属性访问服务器会返回函数的js代码,而我们想要的数据就作为函数参数返回,而我们会先定义这个函数,返回的js代码就可执行

(2) jsonp实现代码

请求页面

<!DOCTYPE html>
<html>
<head>
 <title></title>
</head>
<body>
<script type="text/javascript">
 function jsonp(data){
  console.log(username)
 }
</script>
<script type="text/javascript" src="jquery-1.8.3.min.js">
</script>
<script type="text/javascript">
 $(document).ready(function(){
  var url = "http://www.example.com/jsonp.php?callback=jsonp";
  var script = $('<script><\/script>');
  script.attr("src",url);
  $("body").append(script);
 });
</script>
</body>
</html>
<?php

$data = {'name': '张三'};
$callback = $_GET['callback'];
echo $callback."(".json_encode($data).")";

?php>

之后php会返回

jsonp({
 name:'niuni
})

然后PHP返回的代码h会被请求页面的jsonp方法执行

(3)jQuery的简便jsonp跨域

<script>
 function showData (data) {
  console.info(data);
 }
 $(document).ready(function () {
  $("#btn").click(function () {
   $.ajax({
    url: "http://www.example.comjsonp",
    type: "GET",
    dataType: "jsonp",// 返回数据类型
    jsonpCallback: "showData",//回调函数
    // 获取数据成功就执行success函数
    success: function (data) {
     console.info("data");
    }
   });
  });
 });
</script>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript实现网页上的浮动广告的简单方法
Jun 14 Javascript
JavaScript页面模板库handlebars的简单用法
Mar 02 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
Apr 03 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
Sep 14 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
Nov 17 Javascript
JavaScript每天必学之事件
Sep 18 Javascript
jquery radio的取值_radio的选中_radio的重置方法
Sep 20 Javascript
Javascript动画效果(2)
Oct 11 Javascript
JQuery validate 验证一个单独的表单元素实例
Feb 17 Javascript
jQuery+ajax读取json数据并按照价格排序示例
Mar 28 jQuery
JS面向对象之多选框实现
Jan 17 Javascript
javascript设计模式之迭代器模式
Jan 30 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
Jul 01 #Javascript
关于Vue组件库开发详析
Jul 01 #Javascript
D3.js实现拓扑图的示例代码
Jun 30 #Javascript
详解angular如何调用HTML字符串的方法
Jun 30 #Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
Jun 30 #Javascript
基于webpack4搭建的react项目框架的方法
Jun 30 #Javascript
AngularJs分页插件使用详解
Jun 30 #Javascript
You might like
destoon切换城市后实现logo旁边显示地区名称的方法
2014/08/21 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
七个不允许错过的jQuery小技巧
2015/12/21 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
Python中的index()方法使用教程
2015/05/18 Python
Python 性能优化技巧总结
2016/11/01 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
python 获取url中的参数列表实例
2018/12/18 Python
python for 循环获取index索引的方法
2019/02/01 Python
python实战串口助手_解决8串口多个发送的问题
2019/06/12 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
厂办主管岗位职责范本
2014/02/28 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
单位考核聘任报告
2015/03/02 职场文书
团员自我评价范文
2015/03/10 职场文书
电话营销开场白
2015/05/29 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技