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"
            ....
    })
     

         

  • 相关阅读:
    Oracle中模拟SQL中的isnull函数
    Delphi:在OnBeforePost事件中取消TDataSet.Post(Delphi: Canceling a TDataSet.Post in an OnBeforePost Event)
    DBGrid的输入焦点控制
    刷新dbgrid 而不失去当前行位置
    MoveTo和MoveBy
    接口及接口测试
    ()文献可视化--vosviewer入门
    给出先序和中序,给一个数找到位置并输出它左子树里最大的数
    Kruskal算法:最小生成树
    Prim算法:最小生成树
  • 原文地址:https://www.cnblogs.com/95lyj/p/9338426.html
Copyright © 2011-2022 走看看