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 相关文章推荐
js setattribute批量设置css样式
Nov 26 Javascript
Javascript继承机制的设计思想分享
Aug 28 Javascript
jquer之ajaxQueue简单实现代码
Sep 15 Javascript
使用firebug进行调试javascript的示例
Dec 16 Javascript
jquery中append()与appendto()用法分析
Nov 14 Javascript
javascript+html5实现绘制圆环的方法
Jul 28 Javascript
基于JavaScript实现窗口拖动效果
Jan 18 Javascript
js时间戳格式化成日期格式的多种方法介绍
Feb 16 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
Feb 17 Javascript
微信小程序:数据存储、传值、取值详解
May 07 Javascript
Emberjs 通过 axios 下载文件的方法
Sep 03 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
Sep 10 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操作xml入门之xml基本介绍及xml标签元素
2015/01/23 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
js 自定义个性下拉选择框示例
2013/08/20 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
原生javascript中this几种常见用法总结
2020/02/24 Javascript
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
selenium+python实现自动化登录的方法
2018/09/04 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
Python中的流程控制详解
2021/02/18 Python
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
品恩科技软件测试面试题
2014/10/26 面试题
岗位职责范本
2013/11/23 职场文书
医药个人求职信范文
2014/01/29 职场文书
区三好学生主要事迹
2014/01/30 职场文书
优秀学生事迹材料
2014/02/08 职场文书
《鞋匠的儿子》教学反思
2014/03/02 职场文书
施工安全员岗位职责
2015/04/11 职场文书
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis