jquery ajax中使用jsonp的限制解决方法


Posted in Javascript onNovember 22, 2013

jsonp 解决的是跨域 ajax 调用的问题。为什么要跨域 ajax 调用呢?这样可以在一个应用中直接在前端通过 js 调用另外一个应用(在不同的域名下)的 API。
我们在实际应用中也用到了 jsonp ,但之前只知道 jsonp 的一个限制,只能发 get 请求,get 请求的弊端是请求长度有限制。
今天,发现 jsonp 的另外一个限制(在jquery ajax的场景下) —— 不会触发 $.ajax 的error callback,示例代码如下:

$.ajax({
    dataType: 'jsonp',            
    error: function (xhr) {
        //出错时不会执行这个回调函数
    }
});

这个限制由 jsonp 的实现机制决定。

解决方法:

使用一个 jquery 插件 —— jquery-jsonp,https://github.com/jaubourg/jquery-jsonp

示例代码:

<script src="https://raw.github.com/jaubourg/jquery-jsonp/master/src/jquery.jsonp.js"></script>
$.jsonp({
    url: '',
    success: function (data) {
    },
    error: function (xOptions, textStatus) {
        console.log(textStatus);
    }
});

当 jsonp 请求出错时,比如 404 错误,error 回调函数会执行,输出字符串"error"。

Javascript 相关文章推荐
Jquery 实现Tab效果 思路是js思路
Mar 02 Javascript
微博@符号的用户名提示效果。(想@到谁?)
Nov 05 Javascript
浅谈javascript面向对象程序设计
Jan 21 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
May 03 Javascript
jQuery通过deferred对象管理ajax异步
May 20 Javascript
js中的面向对象入门
Mar 06 Javascript
简单实现js点击展开二级菜单功能
May 16 Javascript
React props和state属性的具体使用方法
Apr 12 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
Sep 27 Javascript
微信小程序实现登录遮罩效果
Nov 01 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
Aug 14 Javascript
vue通过接口直接下载java生成好的Excel表格案例
Oct 26 Javascript
javascript禁用Tab键脚本实例
Nov 22 #Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
Nov 22 #Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
Nov 22 #Javascript
javascript删除option选项的多种方法总结
Nov 22 #Javascript
js截取固定长度的中英文字符的简单实例
Nov 22 #Javascript
String.prototype实现的一些javascript函数介绍
Nov 22 #Javascript
nodeType属性返回被选节点的节点类型介绍
Nov 22 #Javascript
You might like
PHP flock 文件锁详细介绍
2012/12/29 PHP
php通过字符串调用函数示例
2014/03/02 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
PHP链表操作简单示例
2016/10/15 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
Jquery中getJSON在asp.net中的使用说明
2011/03/10 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
详解从Vue-router到html5的pushState
2018/07/21 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
Angular6 发送手机验证码按钮倒计时效果实现方法
2019/01/08 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
用C++封装MySQL的API的教程
2015/05/06 Python
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
Python中实现输入一个整数的案例
2020/05/03 Python
python Paramiko使用示例
2020/09/21 Python
小学开学典礼主持词
2014/03/19 职场文书
小学教师评语大全
2014/04/23 职场文书
优质服务活动实施方案
2014/05/02 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
应届生求职信范文
2014/06/30 职场文书
欠条样本
2015/07/03 职场文书