关于jsonp跨域请求
时间:2019-01-10
本文章向大家介绍关于jsonp跨域请求,主要包括关于jsonp跨域请求使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
由于受到同源策源限制
无法使用ajax对其他源请求数据如
(静态页、动态页、web服务、wcf只要是跨域请求一律不准)
同源策略
同源指的是域名,端口,协议(http,https)相同
当使用ajax访问不同源数据是会出现类似
NO’Allow-Control-Allow-Orign’字样
使用jsonp
1.jsonp 使用get方法发送请求
该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住json数据 这样客户端就可以随意定制自己的函数来自动处理返回数据
如百度搜索框请求的url https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=&cb=jQuery
能得到返回的json数据
其中wd是搜索框的输入的数据,cb是callback
<script src=https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a&cb=jQuery></scipt>
<script>
function jQuery(data){
console.log(data);
}
</script>
通过script标签请求数据,服务器会返回jQuery名开头的数据(给什么cb参数就会返回以什么命名的类json数据),数据会被以上的jquery函数回调,请求的返回数据传则给data.以下是返回的数据
jQuery({q:“a”,p:false,s:[“爱奇艺”,“阿里云”,“and2girls”,“阿里巴巴”,“atlas”,“安居客”,“阿里巴巴批发网”,“爱思助手”,“安卓模拟器”,“阿里巴巴矢量图标库”]});
注意
回调函数名称要和给的callback参数相同才行
总结
因为返回的数据名称可能需要和自定义的回调函数相同才能调用,所以通常会将自己的回调函数名作为参数传递,可以通过js动态生成script标签进行请求完成后获取数据后回调函数中去掉创建的script标签节点
- 2016: [Usaco2010]Chocolate Eating
- javascript 闭包详解
- 3016: [Usaco2012 Nov]Clumsy Cows
- POJ 3207 Ikki's Story IV - Panda's Trick(2-SAT)
- 3359: [Usaco2004 Jan]矩形
- 漫谈Java IO之 Netty与NIO服务器
- Java线程的几种状态
- POJ3683 Priest John's Busiest Day(2-SAT)
- javascript 面向对象(实现继承的几种方式)
- Base64 的 JavaScript 实现 js-base64
- HTTP请求详解
- 漫谈Java IO之 NIO那些事儿
- 1593: [Usaco2008 Feb]Hotel 旅馆
- BZOJ 1823: [JSOI2010]满汉全席(2-SAT)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux后台运行Python程序的几种方法讲解
- tr命令在统计英文单词出现频率中的妙用
- 浅析CentOS8虚拟机访问Windows10主机文件夹方法
- CentOS 7 安装 Jenkins过程详解
- ubuntu15.10下hadoop2.7.2的安装与配置详解
- linux服务器被植入ddgs、qW3xT.2挖矿病毒的处理实战记录
- Linux 创建修改删除用户和组的方法
- 详解Ubuntu16.04安装nvidia驱动+CUDA+cuDNN的教程
- linux free命令详解
- Linux下memcache编译安装与基本使用教程
- Linux中MongoDB如何实现远程自动备份详解
- 覆盖原先的PATH导致命令失效提示command not found的解决方法
- Linux中可以节省你时间的15个命令别名
- Linux下利用unzip命令如何解压多个文件详解
- linux查看磁盘使用情况方法