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 Data req.body
Request Payload var 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
    }
]


猜你喜欢

转载自blog.csdn.net/fortunegrant/article/details/80490230