ajax配置项中的type与method ,最近碰到用method不行,换type才可以,POST情况下

485 阅读1分钟

Ajax提交之后,Method从POST变成GET

  • 因为你的 dataType 是 jsonp 而不是 json ,jsonp不支持POST跨域,所以会自动给你转成GET --- 我当然不是这个原因!
$.ajax({ 
	type: 'POST', 
	dataType: 'json', // 若出现跨域请求请使用'jsonp'
	url: "http://127.0.0.1:8084", 
	data: {"act_order":"1477360975713",
	"act_id":"1"}, 
	dataType: "jsonp"
})

你的js版本太低了,我也遇到了这样情况,换上高版本版本(在jQuery1.9以后),这个解答我从网路上找的,其实也正是这个原因(我用zepto.js version:"^1.1.6")

  • 本质上 type || method 两个配置项是没有区别的,区别在于两者出现的时间不同,type对于目前jQuery的版本全部兼容,也就是说 type: 'POST', type: 'GET', 都行,这种方式书写,type类型是GET就是GET请求,是POST请求就是POST请求。

在jQuery1.9以后的版本中使用ajax时,可以使用如下方式

$.ajax({
        method: 'POST',  //这里不同了
        url: '/login',
        data: {
            'userName': userName,
            'password': password
        }
})

实现的功能是一样的,但是如果此时你引入的jQuery(zepto)的js文件版本太旧,就会出现请求全是以默认方式GET进行的,
所以控制台会出现一些所看到的bug

type 和 method 一样的含义 只是mthod是version1.9添加的,所以版本1.9之前的使用type(本全部兼容) 之后的使用method

结语

前端react QQ群:788023830 ---- React/Redux - 地下老英雄

前端交流QQ群:249620372 ---- FRONT-END-JS前端

(我们的宗旨是,为了加班,为了秃顶……,仰望大佬),希望小伙伴们加群一起学习