• HTTP Headers Content-Type 详解


    Content-Type 实体头部用于指示资源的 MIME 类型 media type 。

    语法

    Content-Type: text/html; charset=utf-8
    Content-Type: multipart/form-data; boundary=something
    
    参数 说明
    media-type 资源或数据的 MIME type
    charset 字符编码标准
    boundary boundary

    常见 media-type

    • text/plain
    • application/json
    • application/x-www-form-urlencoded
    • multipart/form-data

    几种请求设置 Content-Type 的方式

    XMLHttpRequest

    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open('POST', 'https://xxx.xxx.com/xxx', true);
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send('a=1&b=2');
    
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open('POST', 'https://xxx.xxx.com/xxx', true);
    xmlhttp.setRequestHeader('Content-Type', 'application/json');
    xmlhttp.send(JSON.stringify({ a: 1, b: 1 }));
    

    JQuery.ajax

    $.ajax({
      type: 'post',
      url: 'https://xxx.xxx.com/xxx',
      contentType: 'application/x-www-form-urlencoded',
      data: { a: 1, b: 1 }, // ajax 会自动转成 a=1&b=2
      success: function () { },
    })
    
    $.ajax({
      type: 'post',
      url: 'https://xxx.xxx.com/xxx',
      contentType: 'application/json',
      data: JSON.stringify({ a: 1, b: 1 }),
      success: function () { },
    })
    

    JQuery.ajax 本质是封装 XMLHttpRequest , contentType 即 content-type , 默认 application/x-www-form-urlencoded 。

    注意

    • data 如果不是 string , 会使用 jQuery.param 转换成 = & 拼接的 search 格式,然后用 xml.send 方法发送。
    • dataType 预期服务器返回的数据类型。会通过下面对象转换后插入 accept。
    accepts: {
    	"*": allTypes,
    	text: "text/plain",
    	html: "text/html",
    	xml: "application/xml, text/xml",
    	json: "application/json, text/javascript"
    },
    

    Fetch

    fetch('https://xxx.xxx.com/xxx', {
      method: 'post',
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
      },
      body: 'a=1&b=2',
    })
    
    fetch('https://xxx.xxx.com/xxx', {
      method: 'post',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({ a: 1, b: 1 }),
    })
    

    三种数据传输方式

    Query String Parameters

    从问号 (?) 开始的 URL(查询部分)。

    Form Data

    application/x-www-form-urlencoded

    Request Payload

    application/json

  • 相关阅读:
    Vue2+VueRouter2+webpack 构建项目实战(一):准备工作
    vue+webpack 安装常见插件
    JS与CSS阻止元素被选中及清除选中的方法总结
    IE浏览器的ActiveXObject对象以及FileSystemobject的应用扩展(完成)
    用webpack2.0构建vue2.0超详细精简版
    从淘宝和网易的font-size思考移动端怎样使用rem?
    用CSS开启硬件加速来提高网站性能
    JS实现数组去重方法整理
    [总结]高效的jQuery代码编写技巧
    JS apply的巧妙用法以及扩展到Object.defineProperty的使用
  • 原文地址:https://www.cnblogs.com/whosmeya/p/14315632.html
Copyright © 2020-2023  润新知