$.ajax()之data详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/IT_10/article/details/82811446

最近在做项目的时候,用到$.ajax()进行数据交互,然后遇到一个问题,data参数中包含一个提前定义的数组(var
array=[];)这个数组可能为空,只有符合某条件才会向其中插入元素。然后后台接受数据的时候,会去获取array这个参数,但是当array为空的时候,后台无法获取array参数而报错。于是,我去浏览器中产看HTTP请求,发现的确没有将空的array参数传过去。如下:

 	data:{
           fapiaoxmsz:JSON.stringify(allRow), //allRow是一个数组
           a:array //array目前是一个空数组
         },

在这里插入图片描述
在这里,并没有将a参数发送过去,即使它是一个空数组,我们预期的应该要发送一个array=[]
然后,再去认真看了$.ajax()的文档后发现,data的参数类型要求为Object或String类型的参数,发送到服务器的数据,如果不是字符串,将自动转换为字符串格式,然而空数组被转换成字符串之后,data默认就把这个参数丢弃了,所以该参数无法传到后台。但是后台预期得到一个array参数,即使array=[],要想这样实现,则应该把JSON.stringify()派上用场,JSON.stringify()和JSON.parse()是一对作为前后台数据传输的数据格式转换强大的函数,具体用法参照博文 https://blog.csdn.net/IT_10/article/details/82181163
现在重新传输

	data:{
	      	 fapiaoxmsz:JSON.stringify(allRow), //allRow是一个数组
	         a:JSON.stringify(array) //array目前是一个空数组
       },

在这里插入图片描述
这样就OK啦!!!

猜你喜欢

转载自blog.csdn.net/IT_10/article/details/82811446
今日推荐