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 相关文章推荐
ext combox 下拉框不出现自动提示,自动选中的解决方法
Feb 24 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
Nov 05 Javascript
JavaScript判断是否为数字的4种方法及效率比较
Apr 01 Javascript
js实现使用鼠标拖拽切换图片的方法
May 04 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
Oct 26 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
Mar 15 Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
在微信小程序中使用图表的方法示例
Apr 25 Javascript
微信小程序使用字体图标的方法
May 23 Javascript
JS实现处理时间,年月日,星期的公共方法示例
May 31 Javascript
JavaScript鼠标悬停事件用法解析
May 15 Javascript
antd日期选择器禁止选择当天之前的时间操作
Oct 29 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下使用无限生命期Session的方法
2007/03/16 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
javascript调试说明
2010/06/07 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
JS动态生成年份和月份实例代码
2017/02/04 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
python动态网页批量爬取
2016/02/14 Python
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
python实现桌面壁纸切换功能
2019/01/21 Python
使用Python 统计高频字数的方法
2019/01/31 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
html5 canvas fillRect坐标和大小的问题解决方法
2014/03/26 HTML / CSS
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
师范生实习自我鉴定
2013/11/01 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
中学生演讲稿
2014/04/26 职场文书
公司担保书格式范文
2014/05/12 职场文书
长城导游词
2015/01/30 职场文书
初中班主任教育随笔
2015/08/15 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
《社戏》教学反思
2016/02/22 职场文书
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python
Django框架之路由用法
2022/06/10 Python