ajax向后台传递数组

版权声明:本篇博客内容来源于本人亲身经历,属于本人原创,转载请注明出处,感谢分享~~ https://blog.csdn.net/hl_qianduan/article/details/84881956
var type=[1,2,3]
var postData = {"type":type};

上面这样是不行的,不支持直接传递数组

方法一:

var types=[4,5,6];
var type = types.join(",")
var postData = {"types":type};

需要用数组的join方法用逗号分隔开即可,当然具体的运用还是要看后台需要怎么做

方法二:也可以

var postData = JSON.parse({"types":[1,2,3]})

具体看后台的需求

附jQuery版ajax完整写法

    $.ajax({
        type:"post",  //请求方法,默认是get,分为post,get,如果要使用POST方法,可以设定type参数值。这个选项也会影响data选项中的内容如何发送到服务器。
        url:"接口",  //请求的地址url
        async:true,//是否为异步执行,默认设置成true,这标志着在请求开始后,其他代码依然能够执行。强烈不建议把这个选项设置成false,这意味着所有的请求都不再是异步的了,这也会导致浏览器被锁死。
        data:{"参数名":参数},//发送到url(服务器)的数据
        dataType:"json",//预期服务器返回数据的类型
        success:function (r) {
            console.log(r)//r为服务器所返回的值
        },
        error:function (r) {
            //服务器连接失败
        },
        beforeSend:function(){
            //在success之前就进行了操作
        },
        complete:function(){
            //在success之后就进行操作
        }
    })

以下内容转至https://blog.csdn.net/fortunegrant/article/details/79534732

get/post请求的区别:

1. GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给WEB服务器。当然在Ajax请求中,这种区别对用户是不可见的。

2. 首先是"GET方式提交的数据最多只能是1024字节",因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。注意这是限制是整个URL长度,而不仅仅是你的参数值数据长度。

3. GET方式请求的数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号和密码等。在某种情况下,GET方式会带来严重的安全问题。而POST方式相对来说就可以避免这些问题。 get请求和post请求在服务器端的区别:

4. 在客户端使用get请求时,服务器端使用Request.QueryString来获取参数,而客户端使用post请求时,服务器端使用Request.Form来获取参数. HTTP标准包含这两种方法是为了达到不同的目的。POST用于创建资源,资源的内容会被编入HTTP请示的内容中。例如,处理订货表单、在数据库中加入新数据行等。 当请求无副作用时(如进行搜索),便可使用GET方法;当请求有副作用时(如添加数据行),则用POST方法。

一个比较实际的问题是:GET方法可能会产生很长的URL,或许会超过某些浏览器与服务器对URL长度的限制。 然而,在以下情况中,请使用 POST 请求: 无法使用缓存文件(更新服务器上的文件或数据库) 向服务器发送大量数据(POST 没有数据量限制)

猜你喜欢

转载自blog.csdn.net/hl_qianduan/article/details/84881956