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 相关文章推荐
JavaScript中获取Radio被选中的值
Nov 11 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
Apr 03 Javascript
用AngularJS的指令实现tabs切换效果
Aug 31 Javascript
JavaScript中常用的验证reg
Oct 13 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
Dec 02 Javascript
浅析JavaScript中var that=this
Feb 17 Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
Mar 30 Javascript
socket.io实现在线群聊功能
Apr 07 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
Aug 24 Javascript
JavaScript实现串行请求的示例代码
Sep 14 Javascript
WebStorm中如何将自己的代码上传到github示例详解
Oct 28 Javascript
如何使用vue3打造一个物料库
May 08 Vue.js
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常用代码
2006/11/23 PHP
使用PHP的日期与时间函数技巧
2008/04/24 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
html数组字符串拼接的最快方法
2009/09/16 Javascript
Javascript的匿名函数小结
2009/12/31 Javascript
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
Vue全局分页组件的实现代码
2018/08/10 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
小程序实现投票进度条
2019/11/20 Javascript
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
python计算导数并绘图的实例
2020/02/29 Python
东方电视购物:东方CJ
2016/10/12 全球购物
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
医学专业职业生涯规划范文
2014/02/05 职场文书
批评与自我批评材料
2014/02/15 职场文书
新年抽奖获奖感言
2014/03/02 职场文书
创先争优个人承诺书
2014/08/30 职场文书
超市采购员岗位职责
2015/04/07 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
在人间读书笔记
2015/06/30 职场文书
python​格式化字符串
2022/04/20 Python