关于jQuery.ajax()的jsonp碰上post详解


Posted in jQuery onJuly 02, 2017

前言

以前一直以为当$.ajax()的 dataType设置为jsonp时,其method(请求方法)无论怎么设置,都会变成get,直到前两天遇到了一个坑。

下面来一起看看详细的介绍:

关于跨域请求与jsonp

  • 跨域:由于受到同源策略(协议、域名、端口三者必须全部相同)的影响,ajax请求会受到限制,要突破这种限制,跨域便产生了。跨域的解决方案有多种,这里不展开阐述,只是针对GET请求中的jsonp跨域解决方案做一下说明。
  • jsonp,本质上jsonp不是xhr异步请求,就是请求了一个js文件,因此在chrome的network面板中的xhr标签下看不到jsonp的跨域请求,在js标签下能看到。就是利用script标签中src不受同源策略的限制,前端定义了回调函数,请求的js脚本中获取数据,并执行前端的回调函数,因此前后端需要统一定义下回调函数名。
  • $.ajax中jsonp,$.ajax对jsonp进行了封装看起来像是ajax请求。由于jsonp是针对get请求的跨域解决,因此之前的经验告诉我,即使type设置了post,在jsonp的时候,也会自动转换成get,直到有一天踩了个坑。翻看$.ajax模块的源码发现,只有去手动设置crossDomain为true,或者实际上是跨域,才会设置为get。否则还是填入的type

关于jQuery.ajax()的jsonp碰上post详解

关于jQuery.ajax()的jsonp碰上post详解

结论:

手动设置crossDomain为true,或者真的是跨域,才会修改type为GET,否则还是传入的type参数

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

jQuery 相关文章推荐
jQuery实现的手风琴侧边菜单效果
Mar 29 jQuery
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
Jul 20 jQuery
利用JQuery操作iframe父页面、子页面的元素和方法汇总
Sep 10 jQuery
jQuery 利用ztree实现树形表格的实例代码
Sep 27 jQuery
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 jQuery
jquery animate动画持续运动的实例
Nov 29 jQuery
菊花转动的jquery加载动画效果
Aug 19 jQuery
jQuery实现的隔行变色功能【案例】
Feb 18 jQuery
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
May 29 jQuery
jQuery 实现扁平式小清新导航
Jul 07 jQuery
ajax jquery实现页面某一个div的刷新效果
Mar 04 jQuery
jquery实现一个全局计时器(商城可用)
Jun 30 #jQuery
jQuery表单设置值的方法
Jun 30 #jQuery
jQuery开源组件BootstrapValidator使用详解
Jun 29 #jQuery
Vue.js列表渲染绑定jQuery插件的正确姿势
Jun 29 #jQuery
基于jQuery实现的Ajax 验证用户名唯一性实例代码
Jun 28 #jQuery
jQuery、layer实现弹出层的打开、关闭功能
Jun 28 #jQuery
各种选择框jQuery的选中方法(实例讲解)
Jun 27 #jQuery
You might like
程序员编程十条戒律
2009/07/09 PHP
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
python3中dict(字典)的使用方法示例
2017/03/22 Python
django 创建过滤器的实例详解
2017/08/14 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
接口中的方法可以是abstract的吗
2015/07/23 面试题
高校生生产实习自我鉴定
2013/09/21 职场文书
最新销售员个人自荐信
2013/09/21 职场文书
大学生个人自我鉴定
2013/12/03 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
个人整改措施书面材料
2014/10/24 职场文书
2014年车间工作总结
2014/11/21 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
教师学期个人总结
2015/02/11 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
2021年pycharm的最新安装教程及基本使用图文详解
2021/04/03 Python
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL