精华内容
下载资源
问答
  • Content-Type

    千次阅读 2019-04-11 16:41:09
    Content-Type 存在于请求和响应的头部,用于标识数据的类型。(通俗地说就是 , 你想要后台返回给你什么数据类型, 后台需要你发送什么样的数据类型给他) 1. Response Headers 在响应中,Content-Type 告诉客户端...

    Content-Type 存在于请求和响应的头部,用于标识数据的类型。(通俗地说就是 , 你想要后台返回给你什么数据类型, 后台需要你发送什么样的数据类型给他)

     

    1.  Response Headers

    在响应中Content-Type 告诉客户端实际返回的内容的类型。比如要通常接口会返回 JSON 格式的数据,那么需要将 Content-Type 设置为 application/json,当然这是接口的事,很多后端框架都会自动处理,不用手动去加这个 Header。

     

    2.  Request Headers

    在请求中,客户端告诉服务器实际发送的数据类型。这里指的是除 GET 方式以外的请求。常见的取值有:

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

    下面我们就来看看不同的 Content-Type 会有什么区别

    x-www-form-urlencoded

    这应该是目前最常见的方式。提交的数据按照键值对 key1=val1&key2=val2 的方式进行编码。

    比如我们要发送数据

    {
      "name": "tom",
      "age": 20
    }

    会被编码为

    name=tom&age=20 

    常用的 <form> 表单默认就是用的这种方式

    <form method="post">
    </form>

    multipart/form-data

    这是另一个常见的数据提交方式,一般用于文件上传

    上面的 <form> 表单提交中其实有一个属性叫 enctype,用来指定编码格式,默认值为 application/x-www-form-urlencoded,还可以选择 multipart/form-data(不对字符编码)

    <form enctype="multipart/form-data" method="post">
    </form>

    application/json

    支持比键值对复杂得多的结构化数据。由于 JSON 规范的流行,越来越多的人采用了这种方式,常用的第三方请求库 Axios 默认就是用的 application/json。

    前面提到的问题就出现在这里,前端一般用了第三方的请求库,很可能请求头 Content-Type 就直接用的默认值 application/json。然而,服务器端对这种格式的数据默认支持并没有 x-www-form-urlencoded 好。比如 PHP 的很多框架就是不直接支持的,需要手动处理。

    所以就导致了前端发送 application/json 编码的数据,而后端却只能解析 x-www-form-urlencoded 。

    展开全文
  • XMLHttpRequest cannot load http://xxx.com. Request header field Content-Type is not allowed by Access-Control-Allow-Headers. 解决方案: 例如php服务端程序设置头: header('Access-Control-Allow-...

    作为技术人,如何突破自己的技术瓶颈,从而提高自己的核心竞争力(年度深度好文)


    跨域错误提示:

    XMLHttpRequest cannot load http://xxx.com. Request header field Content-Type is not allowed by Access-Control-Allow-Headers.

     

    解决方案:

    例如php服务端程序设置头:

    header('Access-Control-Allow-Origin: *');
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
    header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE');

     

    主要是这三个:

     

     

    展开全文
  • Content-Type 详解

    万次阅读 多人点赞 2019-01-11 18:08:50
    Content-Type 详解Content-Type常见Content-Typeapplication/x-www-form-urlencodedmultipart/form-dataapplication/jsonapplication/xml 和 text/xmlContent-Type的使用request 的Content-Typeresponse的Content-...

    Content-Type

    Content-Type(MediaType),即是Internet Media Type,互联网媒体类型,也叫做MIME类型。在互联网中有成百上千中不同的数据类型,HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签,用于区分数据类型。最初MIME是用于电子邮件系统的,后来HTTP也采用了这一方案。

    在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。它用来告诉服务端如何处理请求的数据,以及告诉客户端(一般是浏览器)如何解析响应的数据,比如显示图片,解析并展示html等等。

    Content-Type的格式
    Content-Type:type/subtype ;parameter

    • type:主类型,任意的字符串,如text,如果是*号代表所有;
    • subtype:子类型,任意的字符串,如html,如果是*号代表所有,用“/”与主类型隔开;
    • parameter:可选参数,如charset,boundary等。

    例如:
    Content-Type: text/html;
    Content-Type: application/json;charset:utf-8;

    常见Content-Type

    常见的Content-Type有数百个,下面例举了一些

    • HTML文档标记:text/html;
    • 普通ASCII文档标记:text/html;
    • JPEG图片标记:image/jpeg;
    • GIF图片标记:image/gif;
    • js文档标记:application/javascript;
    • xml文件标记:application/xml;
      更多具体内容可参考《图解HTTP》- 附录D

    上面的Content-Type,我们只认得就好,但是下面有4种是需要我们清楚他们的区别及牢记在心的。

    application/x-www-form-urlencoded

    HTTP会将请求参数用key1=val1&key2=val2的方式进行组织,并放到请求实体里面,注意如果是中文或特殊字符如"/"、","、“:" 等会自动进行URL转码。不支持文件,一般用于表单提交。
    下面是一个例子:

    • 请求参数
      application/x-www-form-urlencoded请求参数
    • http 请求报文
      application/x-www-form-urlencoded报文

    multipart/form-data

    与application/x-www-form-urlencoded不同,这是一个多部分多媒体类型。首先生成了一个 boundary 用于分割不同的字段,在请求实体里每个参数以------boundary开始,然后是附加信息和参数名,然后是空行,最后是参数内容。多个参数将会有多个boundary块。如果参数是文件会有特别的文件域。最后以------boundary–为结束标识。multipart/form-data支持文件上传的格式,一般需要上传文件的表单则用该类型。
    下面是一个例子:

    • 请求参数
      multipart/form-data请求参数
    • http 请求报文
      multipart/form-data报文

    application/json

    JSON 是一种轻量级的数据格式,以“键-值”对的方式组织的数据。这个使用这个类型,需要参数本身就是json格式的数据,参数会被直接放到请求实体里,不进行任何处理。服务端/客户端会按json格式解析数据(约定好的情况下)。

    • 请求参数
    • application/json请求参数
    • http 请求报文
      application/json报文

    application/xml 和 text/xml

    与application/json类似,这里用的是xml格式的数据,text/xml的话,将忽略xml数据里的编码格式,参考

    Content-Type的使用

    request 的Content-Type

    一般我们在开发的过程中需要注意客户端发送请求(Request)时的Content-Type设置,特别是使用ajax的时候,如果设置得不准确,很有可能导致请求失败。比如在spring中,如果接口使用了@RequestBody,spring强大的自动解析功能,会将请求实体的内容自动转换为Bean,但前提是请求的Content-Type必须设置为application/json,否正就会返回415错误。
    注:415 错误是 Unsupported media type,即不支持的媒体类型。
    建议:

    1. 如果是一个restful接口(json格式),一般将Content-Type设置为application/json; charset=UTF-8;
    2. 如果是文件上传,一般Content-Type设置为multipart/form-data
    3. 如果普通表单提交,一般Content-Type设置为application/x-www-form-urlencoded

    response的Content-Type

    服务端响应(Response)的Content-Type最好也保持准确,虽然一般web开发中,前端解析响应的数据不会根据Content-Type,并且服务端一般能自动设置准确的Content-Type,但是如果乱设置某些情况下可能会有问题,比如导出文件,打开图片等。如果在spring项目里使用@ResponseBody,spring会将响应的Content-Type设置为application/json;charset=UTF-8;,可能会导致文件无法导出,需要注意下。

    response的Content-Type设置建议:

    1. 一般情况下不需要显示设置;
    2. 如果是文件导出,Content-Type 设置为 multipart/form-data,并且添加一个Content-Disposition设置为attachment;fileName=文件.后缀。
      注:Content-Disposition是Content-Type的扩展,告诉浏览器弹窗下载框,而不是直接在浏览器里展示文件。因为一般浏览器对于它能够处理的文件类型,如txt,pdf 等,它都是直接打开展示,而不是弹窗下载框。

    下面的一个设置response的Content-Type的例子:

    • 未准确设置response的Content-type的情况,客户端将json数据当成普通文本
      content-type →text/html;charset=UTF-8
      响应类型未设置

    • 准确设置response的Content-type的情况,客户端将json数据自动解析
      content-type →application/json;charset=UTF-8
      正确的设置响应的类型

    参考
    《HTTP 权威指南》
    什么是json
    常见的Content-Type
    application/xml 和 text/xml的区别
    postman里的Content-Type

    展开全文
  • php中利用header设置content-type和常见文件类型的content-type 在PHP中可以通过header函数来发送头信息,还可以设置文件的content-type,下面整理了一些常见文件类型对于的content-type值。 部分header...

    php中利用header设置content-type和常见文件类型的content-type

    在PHP中可以通过header函数来发送头信息,还可以设置文件的content-type,下面整理了一些常见文件类型对于的content-type值。

    部分header头参考:http://www.lai18.com/content/433566.html

    //author http://www.lai18.com 
    //date 2015-06-22
    //定义编码
    header( 'Content-Type:text/html;charset=utf-8 ');
    
    //Atom
    header('Content-type: application/atom+xml');
    
    //CSS
    header('Content-type: text/css');
    
    //Javascript
    header('Content-type: text/javascript');
    
    //JPEG Image
    header('Content-type: image/jpeg');
    
    //JSON
    header('Content-type: application/json');
    
    //PDF
    header('Content-type: application/pdf');
    
    //RSS
    header('Content-Type: application/rss+xml; charset=ISO-8859-1');
    
    //Text (Plain)
    header('Content-type: text/plain');
    
    //XML
    header('Content-type: text/xml');
    
    // ok
    header('HTTP/1.1 200 OK');
    
    //设置一个404头:
    header('HTTP/1.1 404 Not Found');
    
    //设置地址被永久的重定向
    header('HTTP/1.1 301 Moved Permanently');
    
    //转到一个新地址
    header('Location: http://www.example.org/'); 
    //文件延迟转向:
    header('Refresh: 10; url=http://www.example.org/');
    print 'You will be redirected in 10 seconds';
    
    //当然,也可以使用html语法实现
    // <meta http-equiv="refresh" content="10;http://www.example.org/ />
    
    // override X-Powered-By: PHP:
    header('X-Powered-By: PHP/4.4.0');
    header('X-Powered-By: Brain/0.6b');
    
    //文档语言
    header('Content-language: en');
    
    //告诉浏览器最后一次修改时间
    $time = time() - 60; // or filemtime($fn), etc
    header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');
    
    //告诉浏览器文档内容没有发生改变
    header('HTTP/1.1 304 Not Modified');
    
    //设置内容长度
    header('Content-Length: 1234');
    
    //设置为一个下载类型
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="example.zip"');
    header('Content-Transfer-Encoding: binary');
    // load the file to send:
    readfile('example.zip');
    
    // 对当前文档禁用缓存
    header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
    header('Pragma: no-cache');
    
    //设置内容类型:
    header('Content-Type: text/html; charset=iso-8859-1');
    header('Content-Type: text/html; charset=utf-8');
    header('Content-Type: text/plain'); //纯文本格式
    header('Content-Type: image/jpeg'); //JPG***
    header('Content-Type: application/zip'); // ZIP文件
    header('Content-Type: application/pdf'); // PDF文件
    header('Content-Type: audio/mpeg'); // 音频文件
    header('Content-Type: application/x-shockw**e-flash'); //Flash动画
    
    //显示登陆对话框
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: Basic realm="Top Secret"');
    print 'Text that will be displayed if the user hits cancel or ';
    print 'enters wrong login data';


     

    展开全文
  • 经常在使用AFN的时候会出现content-type错误,缺少请求类型,比如”unacceptable content-type: text/plain” 解决方法: 1.在网络请求代码处修改AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager]; mgr....
  •   Content-Type 实体头部用于指示资源的MIME类型,在响应中,Content-Type标头告诉客户端实际返回的内容的类型,指示客户端如何显示附加的文件。   Content-Disposition 是 MIME 协议的扩展,指示回复的内容该以...
  • 最近项目中用到的一个是用一个页面接收c程序post过来的一断字符串.....区别只是Content-Type:application/x-www-form-urlencoded 和 Content-Type:multipart/related 查资料得:  application/x-www-form-
  • 缺少“X-XSS-Protection”,“X-Content-Type-Options”, “Content-Security-Policy”头解决方法 用AppScan扫描网站,高危问题:缺少“X-XSS-Protection”,“X-Content-Type-Options”, “Content-Security-Policy”...
  • 使用JQ的ajax需要设置Content-TypeContent-Type的设置有以下几种常用的 &quot;Content-Type&quot;: &quot;application/x-www-form-urlencoded&quot; // 适用于大部分情况 &quot;Content-Type...
  • 本文讲三种content-type以及在Jmeter中对应的参数输入方式   第一部分:目前工作中涉及到的content-type 有三种: content-type:在Request Headers里,告诉服务器我们发送的请求信息是哪种格式的。   1 ...
  • 如上图配置 add_header X-Content-Type-Options: nosniff; add_header X-XSS-Protection "1; mode=block"; add_header Content-Security-Policy "default-src 'self'"; 如上图即成功
  • HTTP中content-type和MIME媒体类型

    万次阅读 多人点赞 2020-04-22 16:03:23
    Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些 PHP 网页点击的结果却是下载一个文件或...
  • nginx下配置: ...add_header X-Content-Type-Options "nosniff"; X-Frame-Options:响应头表示是否允许浏览器加载frame等属性,有三个配置DENY禁止任何网页被嵌入,SAMEORIGIN只允许本网站的嵌套,ALL.
  • HTTP content-type

    千次阅读 2018-03-08 10:53:39
    HTTP content-typeContent-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载...
  • ElasticSearch搭建完成后准备使用es-head建立索引时发现Content-Type错误了 看一下网络流可知报406 错误 { "error" : "Content-Type header [application/x-www-form-urlencoded] is not supported", "status" : ...
  • 上传文件到服务器的方式种类有很多,今天我们这里讲一讲Content-Type为multipart/form-data类型的方式上传文件时要注意的地方,我们以上传.xlsx表格为例。 直接上代码,不啰嗦 import requests from requests_...
  • Http中Content-Type的详解

    万次阅读 多人点赞 2017-06-04 20:27:12
    这里讲解Content-Type的可用值,以及在spring MVC中如何使用它们来映射请求信息。 1. Content-Type  MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-...
  • HTTP Content-Type

    千次阅读 2019-02-03 15:26:42
    Content-Type(Mime-Type) 文件扩展名 Content-Type(Mime-Type) .*( 二进制流,不知道下载文件类型) application/octet-stream .tif image/tiff .001 application/x-001 .301 ...
  • http之content-type与content-language区别

    千次阅读 2017-01-20 15:55:17
    content-type中首部用来指定报文体的类型,譬如是文本还是多媒体,其中可以通过charset来指定内容所使用的字符集。 content-language用来表示报文体使用的语言,譬如ch,fr,en,ja等等。 随之我的疑问也来了,既然...
  • HTTP Content-type 对照表...Content-Type(Mime-Type) 文件扩展名 Content-Type(Mime-Type)  .*( 二进制流, 不知道下载文件类型) application/octet-stream .tif image/tiff .001 app
  • header content-type

    千次阅读 2019-02-21 16:48:51
    content-type 是http实体的首部字段,用户说明请求或返回的...content-type的几种方式: 1.content-type:application/x-www-form-urlencoded  浏览器的原生form表单 提交的数据按照key1=val1&amp;key2=val2 ...
  • [manager.requestSerializer setValue:@"multipart/..." forHTTPHeaderField:@"Content-Type"]; // 比如@"text/html"就是后加的 manager.responseSerializer.acceptableContentTypes = [NSSet
  • Content-Type详解

    千次阅读 2020-01-19 11:13:17
    Content-Type是什么? 在HTTP协议消息头中,使用Content-Type来表示媒体类型信息。它被用来告诉服务端如何处理请求的数据,以及告诉客户端(一般是浏览器)如何解析响应的数据,比如显示图片,解析html或仅仅展示一...
  • HTTP Content-type 对照表 ...Content-Type(Mime-Type) 文件扩展名 Content-Type(Mime-Type)  .*( 二进制流, 不知道下载文件类型) application/octet-stream .tif image/tiff
  • X-Content-Type-Options: nosniff

    千次阅读 2017-03-05 17:31:40
    如果服务器发送响应头 "X-Content-Type-Options: nosniff",则script和styleSheet元素会拒绝包含错误的 MIME 类型的响应。这是一种安全功能,有助于防止基于 MIME 类型混淆的***。简单理解为:通过设置"X-Content-...
  • 比如,A 给 B发送了一条信息:hello,首先,A要告诉B,我给你发的这条数据的类型,不同类型的数据,接收方的处理方式不一样,hello属于文本类型,所以Content-Type就要设置成 text-plain; 但是计算机只知道0和1,...
  • Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件...
  • Content-Type讲解

    万次阅读 2018-01-12 15:49:05
    1. Content-Type  MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。 [html] view plain copy ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 140,811
精华内容 56,324
关键字:

content-type