宝哥软件园

jQuery.ajax()上的jsonp遇到post

编辑:宝哥软件园 来源:互联网 时间:2021-09-04

过去人们认为当$的dataType。ajax()被设置为jsonp,它的方法(request method)无论如何设置都会变成get,直到两天前遇到一个坑。

我们来看看详细的介绍:

关于跨域请求和jsonp

跨域:由于同源策略的影响(协议、域名和端口都必须相同),ajax请求将受到限制。为了突破这一限制,跨域出现了。跨域解决方案有很多种,这里就不细说了,只解释GET请求中的jsonp跨域解决方案。Jsonp,本质上jsonp要么是xhr异步请求,要么是请求js文件,所以jsonp的跨域请求在chrome的网络面板的xhr选项卡下看不到,在js选项卡下可以看到。即脚本标签中的src不受同源策略的限制,回调函数在前端定义,请求的js脚本在前端获取数据并执行回调函数,因此回调函数名称需要在前端和后端统一定义。$中的Jsonp。ajax,$。ajax封装了jsonp,看起来像一个ajax请求。因为jsonp是针对get请求的跨域解决方案,之前的经验告诉我,即使post设置为type,jsonp也会自动转换为get,直到有一天。浏览$的源代码。ajax模块中,发现crossDomain只有手动设置为true或实际跨域时才会设置为get。否则,它仍然填充在类型中

结论:

手动将crossDomain设置为true,或者如果真的是跨域,类型会修改为GET否则,它是传入的类型参数。

摘要

以上就是本文的全部内容。希望这篇文章的内容对你的学习或工作有所帮助。有问题可以留言交流。谢谢你的支持。

更多资讯
游戏推荐
更多+