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实现自定义对话框的代码
Jun 15 Javascript
JavaScript的parseInt 进制问题
May 07 Javascript
WEB 浏览器兼容 推荐收藏
May 14 Javascript
IE6不能修改NAME问题的解决方法
Sep 03 Javascript
解析Jquery取得iframe中元素的几种方法
Jul 04 Javascript
Javascript 中创建自定义对象的方法汇总
Dec 04 Javascript
谈谈JavaScript类型系统之Math
Jan 06 Javascript
JavaScript编码风格指南(中文版)
Aug 26 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
Aug 31 Javascript
Avalonjs 实现简单购物车功能(实例代码)
Feb 07 Javascript
Node.js API详解之 net模块实例分析
May 18 Javascript
实现AJAX异步调用和局部刷新的基本步骤
Mar 17 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连接MySQL代码的参数说明
2008/06/07 PHP
php文档更新介绍
2011/07/22 PHP
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
基于PHP CURL获取邮箱地址的详解
2013/06/03 PHP
php环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
php短址转换实现方法
2015/02/25 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
理解javascript中的回调函数(callback)
2014/09/02 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
python word转pdf代码实例
2019/08/16 Python
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
外贸实习生自荐信范文
2013/11/24 职场文书
材料物理专业个人求职信
2013/12/15 职场文书
书香校园活动方案
2014/02/28 职场文书
硕士研究生求职自荐信范文
2014/03/11 职场文书
幼儿园清明节活动总结
2014/07/04 职场文书
2015年办公室文秘工作总结
2015/04/30 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
Nginx 安装SSL证书完成HTTPS部署
2022/04/28 Servers