ajax发送知识补全

ajax请求头

ajax请求中form data与request payload与querystring区别

HTTP请求过程中,get请求:表单参数以name=value&name1=value1的形式附到url的后面;

          post请求:表单参数是在请求体中,也是name=value&name1=value1的形式在请求体中。!!!

(很重要,要理解这个)

POST表单请求提交时,使用的Content-Type是application/x-www-form-urlencoded,而使用原生AJAX的POST请求如果不指定请求头RequestHeader,默认使用的Content-Type是text/plain;charset=UTF-8。






HTTP请求中的form data,request payload,query string parameters以及在node服务器中如何接收这些参数

今天,在工作(倒腾微信小程序)的时候,发现发送post请求到node后台服务器接收不到前端传来的参数。其实也不是完全不能,期初用jquery中的ajax进行时候是没有任何问题的(后台可以接受参数)。

 

看见了吧 每个图的倒数第二行 Form Data和 Request Payload这两种不同的传递方式造成后台服务器取不到参数。这样就需要在后台服务器对不同的方式,进行不同的接收参数方法:以node+express+post请求为例子(默认参数传递的是json对象)

方式处理
Form Datareq.body
Request Payloadvar str="";req.on("data",function(chunk){str+=chunk})

   Request Payload方式是以“流“”的方式出入到后台,需要监听data事件来获取完整的数据。


querystring 通过req.query就可以


transformRequest: [
    function (data) {
        let ret = '';
        for (let it in data) {
            ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
        }
        return ret
    }
]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值