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 相关文章推荐
谷歌地图打不开的解决办法
Aug 07 Javascript
JS实现向表格中动态添加行的方法
Mar 30 Javascript
jQuery UI结合Ajax创建可定制的Web界面
Jun 22 Javascript
又一枚精彩的弹幕效果jQuery实现
Jul 25 Javascript
jQuery排序插件tableSorter使用方法
Feb 10 Javascript
jQuery实用密码强度检测
Mar 02 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
Jul 12 Javascript
JS设计模式之惰性模式(二)
Sep 29 Javascript
vue debug 二种方法
Sep 16 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
Nov 28 Javascript
小程序使用watch监听数据变化的方法详解
Sep 20 Javascript
初学vue出现空格警告的原因及其解决方案
Oct 31 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实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
微信公众号判断用户是否已关注php代码解析
2016/06/24 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
JavaScript 详解预编译原理
2017/01/22 Javascript
jQuery鼠标悬停内容动画切换效果
2017/04/27 jQuery
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
wxPython学习之主框架实例
2014/09/28 Python
使用python实现省市三级菜单效果
2016/01/20 Python
Python中operator模块的操作符使用示例总结
2016/06/28 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
Python实现简易版的Web服务器(推荐)
2018/01/29 Python
python使用tornado实现登录和登出
2018/07/28 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
应届生财务管理求职信
2013/11/06 职场文书
酒店副总岗位职责
2013/12/24 职场文书
幼儿园教师请假制度
2014/01/16 职场文书
股权转让协议书范本
2014/04/12 职场文书
大学新生入学教育方案
2014/05/16 职场文书
民主评议政风行风整改方案
2014/09/17 职场文书
法定代表人授权委托书范文
2014/09/22 职场文书
秋冬农业生产标语
2014/10/09 职场文书
2015新学期开学寄语
2015/02/26 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
中小企业员工手册范本
2015/05/14 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书
反邪教学习心得体会
2016/01/15 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
大学生创业计划书常用模板
2019/08/07 职场文书
Django实现聊天机器人
2021/05/31 Python