加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax中设置contentType的问题

发布时间:2020-12-16 03:25:02 所属栏目:百科 来源:网络整理
导读:最近在开发中遇到ajax提交参数,后台无法获取到参数的问题,先整理下ajax的几种常见属性 1 .contentType常见的几种情况 "application/json; charset=utf-8" 要求data必须是json串 "text/html" 对于html "text/xml " 对于xml "application/x-www-form-urlencod

最近在开发中遇到ajax提交参数,后台无法获取到参数的问题,先整理下ajax的几种常见属性

1 .contentType常见的几种情况

"application/json; charset=utf-8" 要求data必须是json串

"text/html" 对于html

"text/xml " 对于xml

"application/x-www-form-urlencoded" (默认值)

使用contentType时候要求data数据相对应,contentType同时里面可以设置数据的编码方式

2. ajax提交数据时,data传参的几种方式

1> 设置为类似于 "name=zs&sex=1"

2> 设置为json对象 {key:value,key:value} 的格式 这个格式的数据$.ajax()内部会调用$.param()方法拼接为上面格式的数据

上面两种都不用设置contentType,使用默认的就行,不管是post 还是get方式

serializeArray()可以获取json对象,在调用$.param()方法可以转为序列化的字符串

3.提交方式get提交和post提交

post提交:

$.ajax({
		type:'post',url: '/erongDemo/bankServlet',data:{"name":$("#sname").val(),"sex":$("#sex").val()},contentType:'application/json;charset=utf-8',dataType:'json',success:function(data){
			
		}
	});
post 提交,设置contentType为application/json,数据也是json对象,在servlet中无法获取到值,在浏览器上看了下,

数据已经被序列化了,可是request无法获取到值,最后解决方案是改为contentType为默认值,如果有解决方案,可以留言交流



get提交:

$.ajax({
		type:'get',contentType:'application/json',success:function(data){
		}
	});
这次使用get提交,contentType同样设置为application/json,看下浏览器,头信息里面并没有contentType这个属性,

应该是get提交参数是不放在请求实体中,是拼接在url后面.


这次提交数据将contentType去掉,同样请求头中没有这个属性,可以不设置contentType


结论: ajax post提交不设置contentType 使用默认值 application/x-www-form-urlencoded适用于提交data为json对象的情况

而get提交不用设置contentType

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读