前端数据--ajax的data参数类型

我接触ajax很长时间了,老对手。相信很多刚刚入门的都会入坑,前端传数据后台老是接收不到,或者相反。

今天,我也特意来总结一下,ajax取值和传值格式。

先看看两个ajax写法

第一个、后台接收参数  @RequestParam,传参就是data:data, 

这种传参是这样的

data: {"orderId":orderId,"commant":commant}

data: "orderId=" + orderId + "&commant=" + commant

甚至可以不写data,直接写在url的后面

	      			var data = {
	      					app:$('input[name="app"]').val()
	      			};
					$.ajax({ 
						      type:'GET', 
						      url:'controller/**',
						      data:data, 
						      dataType:'json', 
						      async:false,
						      success:function (data) { 
						        if(data.result=="success"){
						        	
						        }
						      }, 
						      error:function (err) { 						        
						        return false; 
						      } 
					   		 });

第二个 、后台参数是@RequestBody,传参需要将对象转换成json字符串:data:JSON.stringify(json),


						var data = { app:$('input[name="app"]').val()									
					};
						$.ajax({ 
							      type:'POST', 
							      url:'controller/**',
							      data:JSON.stringify(data), 
							      dataType:'json', 
							      contentType:"application/json",
							      success:function (data) { 
							       	if(data.result == "success"){
									
									}else{
										
									}
							      }, 
							      error:function (err) { 
						        	return false; 
							      } 
						   		 });

注意,这个地方不是对象,是json字符串。这样,在后台就可以直接注入到对象中。当你需要向后台提交一组对象时时,json字符串的好处就体现出来了(对象数组)。一般都是用post方法传递参数。


除了这两种,还有 FormData对象,它可以更灵活方便的发送表单数据,可以用于文件上传,(上次遇到过文件上传失败,代理服务器的问题formData不能提交)。

data:formData            //网上有很多资料

补充:关于文件上传跨域问题,使用原始的表单submit的方式就可以

eg:点击按钮,请求后台,提交

<form id='addForm' action='**.action' type='post'>
     <label for='uname'>用户名</label><input type='text' name='uname' id='uname'><br>
     <label for='mobileIpt'>手机号:</label><input type='text' name='mobileIpt' id='mobileIpt'><br>
     <input type='button' value='提交' onclick='addUser()'>
</form>

总结:

data传什么数据类型,主要看后台需要什么类型的数据(对象还是字符串)。


  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值