zoukankan      html  css  js  c++  java
  • 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"
            ....
    })
     

         

  • 相关阅读:
    java,jenkins
    docker compose,link,Odoo
    nginx,docker反向代理
    centos7上安装docker-ce社区版
    Install Rancher server
    docker公司测试环境搭建总结
    ansible+docker
    桥接物理网卡,pipwork指定ip,外网连接,研究salt+docker
    20170605
    20170602
  • 原文地址:https://www.cnblogs.com/95lyj/p/9338426.html
Copyright © 2011-2022 走看看