关于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插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
Mar 28 jQuery
jQuery 实现图片的依次加载图片功能
Jul 06 jQuery
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
Sep 20 jQuery
jquery操作select常见方法大全【7种情况】
May 28 jQuery
jQuery操作cookie的示例代码
Jun 05 jQuery
JQuery常用简单动画操作方法回顾与总结
Dec 07 jQuery
jQuery模仿ToDoList实现简单的待办事项列表
Dec 30 jQuery
jQuery操作选中select下拉框的值代码实例
Feb 07 jQuery
Jquery滑动门/tab切换实现方法完整示例
Jun 05 jQuery
jQuery 动态粒子效果示例代码
Jul 07 jQuery
jQuery实现开关灯效果
Aug 02 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
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
PHP Smarty生成EXCEL文档的代码
2008/08/23 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
PHP身份证校验码计算方法
2016/08/10 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
JavaScript中把数字转换为字符串的程序代码
2013/06/19 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python编程实现希尔排序
2017/04/13 Python
python复制文件到指定目录的实例
2018/04/27 Python
Python3 log10()函数简单用法
2019/02/19 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
Python实现数值积分方式
2019/11/20 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
Python随机数函数代码实例解析
2020/02/09 Python
keras 读取多标签图像数据方式
2020/06/12 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
应届毕业生个人自荐信范文
2013/11/30 职场文书
秋季婚礼证婚词
2014/01/11 职场文书
超市创意活动方案
2014/08/15 职场文书
自我推荐信怎么写
2015/03/24 职场文书
小学语文教师研修日志
2015/11/13 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书