• HTTP 之 Content-Type


    Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件或一张图片的原因。


    form 表单发请求:

    浏览器在封装请求头的时候:

    要先写上content-type 编码格式


    POST时才有请求体,浏览器的request请求中,请求体格式:

         1、json   2、formdata  3、x-www-form-urlencoded(默认的)

     application/formdata

            上传文件的时候用,格式:

    POST http://www.example.com HTTP/1.1
    Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryrGKCBY7qhFd3TrwA
    
    ------WebKitFormBoundaryrGKCBY7qhFd3TrwA
    Content-Disposition: form-data; name="user"
    
    yuan
    ------WebKitFormBoundaryrGKCBY7qhFd3TrwA
    Content-Disposition: form-data; name="file"; filename="chrome.png"
    Content-Type: image/png
    
    PNG ... content of chrome.png ...
    ------WebKitFormBoundaryrGKCBY7qhFd3TrwA--

      application/x-www-form-urlencoded(默认的)

            格式:name=yuan&pwd=123

    ajax 发请求:

    发送json方式请求体,要做什么:

    $.ajax({
            ...
    
            data:json.stringify({ a:1,b:2 })
            contentType:"application/json"
    
            ....
    })

    request.post 存放的是解析后的请求体信息,request.post只解析urlencoded的类型

    此处发的json类型的数据,所以在view层,不能解析json数据,通过request.post拿不到数据

    request.body里放的是请求里的原信息

    此时我们想要拿到数据,需要通过 request.body,自己解析请求体数据,

    #在Django中获取body中数据,并转换编码格式
    json.loads(request.body.decode('utf8))

    这样写将json转成urlencoded格式的数据,也可以解决该方法

    $.ajax({
            ...
    // 将json转成urlencoded格式的数据 data:{xxx:json.stringify({ a:1,b:2 })}
         contentType:"application/json"
            ....
    })
     

         

  • 相关阅读:
    iOS中的 .p12 证书的应用
    时间戳
    阿里云的esc
    iOS9 以上的真机调试 不用证书
    iOS UICollectionView数据少导致不能滚动
    jquery.js 库中的 选择器
    多媒体开发之---H.264中I帧和IDR帧的区别
    多媒体开发之---h264中 TS/ES 的区别
    多媒体开发之---h264中nal简介和i帧判断
    多媒体开发之---h264格式详解
  • 原文地址:https://www.cnblogs.com/95lyj/p/9338426.html
Copyright © 2020-2023  润新知