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 相关文章推荐
sina的lightbox效果。
Jan 09 Javascript
基于jquery.Jcrop的头像编辑器
Mar 01 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
Mar 10 Javascript
node.js实现BigPipe详解
Dec 05 Javascript
Node.js编程中客户端Session的使用详解
Jun 23 Javascript
jquery插入兄弟节点的操作方法
Dec 07 Javascript
Bootstrap Table使用整理(三)
Jun 09 Javascript
基于LayUI实现前端分页功能的方法
Jul 22 Javascript
微信小程序自定义toast的实现代码
Nov 16 Javascript
js指定日期增加指定月份的实现方法
Dec 19 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
Apr 11 Javascript
JavaScript小技巧带你提升你的代码技能
Sep 15 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
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
PHP生成便于打印的网页
2006/10/09 PHP
PHP+MySQL5.0中文乱码解决方法
2006/11/20 PHP
上传文件先创建目录 再上传到目录里面去
2010/12/29 PHP
php文件操作实例代码
2012/05/10 PHP
php三元运算符知识汇总
2015/07/02 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
js实现漫天星星效果
2017/01/19 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
vue + element-ui的分页问题实现
2018/12/17 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
js通过canvas生成图片缩略图
2020/10/02 Javascript
在Python的Django框架中加载模版的方法
2015/07/16 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
Python pickle模块实现对象序列化
2019/11/22 Python
Python timeit模块的使用实践
2020/01/13 Python
python中如何写类
2020/06/29 Python
Python logging模块handlers用法详解
2020/08/14 Python
人力资源经理的岗位职责范本
2014/02/28 职场文书
亚运会口号
2014/06/20 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
小学体育教学随笔
2015/08/14 职场文书
如何写好竞聘报告
2019/04/03 职场文书
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby
Oracle用户管理及赋权
2022/04/24 Oracle