时间:2021-04-07 10:16:42 | 栏目:jquery | 点击:次
前言
以前一直以为当$.ajax()
的 dataType设置为jsonp时,其method(请求方法)无论怎么设置,都会变成get,直到前两天遇到了一个坑。
下面来一起看看详细的介绍:
关于跨域请求与jsonp
$.ajax
中jsonp,$.ajax
对jsonp进行了封装看起来像是ajax请求。由于jsonp是针对get请求的跨域解决,因此之前的经验告诉我,即使type设置了post,在jsonp的时候,也会自动转换成get,直到有一天踩了个坑。翻看$.ajax模块的源码发现,只有去手动设置crossDomain为true,或者实际上是跨域,才会设置为get。否则还是填入的type
结论:
手动设置crossDomain为true,或者真的是跨域,才会修改type为GET,否则还是传入的type参数
总结