Content-Type 之 application/json 与 text/javascript

我们一般在服务端返回 json 格式数据给浏览器端时,会使用下面的代码:

response.setContentType("text/javascript;charset=UTF-8");

或者:

response.setContentType("application/json;charset=UTF-8");

但是两种什么区别呢?

其实很简单。前者用于返回js代码,后者专门用于返回 json 格式的数据。

也就是说,前者 返回的 js 代码,会自动在 浏览器中进行执行,就像返回的结果被 eval(result) 调用了一样。也就是说返回的字符串,会被当做 js 代码,被浏览器的js引擎进行执行。而不是当做普通的字符串显示在浏览器中。

后者专门用于返回 json 格式的数据,而 json 格式是 js 代码的一个子集。也就是说 json 格式的数据,也是 js 代码,也会被浏览器的js引擎执行,而生成 json 对象。

但是 json 格式的范围比 js 代码的范围要小很多。json 是 js 的一个子集。关于 json 的具体格式要求,参见:http://www.json.org/

所以如果返回的是 json 格式,那么用两者都是可以的。

------------------------------

服务端 向 客户端 发送 JSON数据 时: 
    Content-Type = ‘application/json;charset=UTF-8‘

服务端 向 客户端 发送 JS 代码 时:

Content-Type = ‘text/javascript;charset=UTF-8‘

服务端 判断 客户端 提交的是否是 JSON数据 时 :

Content-Type = ‘application/json;charset=UTF-8‘ 
    Content-Type = ‘text/json;charset=UTF-8‘ 
    Content-Type = ‘text/javascript;charset=UTF-8‘ 
    Content-Type = ‘application/javascript;charset=UTF-8‘

只要 Content-Type 满足上面4个条件中的 任意一个时,就可以认为提交的数据是 JSON数据

时间: 2024-10-02 02:48:37

Content-Type 之 application/json 与 text/javascript的相关文章

四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml)

HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式. 我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范.规范把 HTTP 请求分为三个部分:状态行.请求头.消息主体.类似于下面这样: <method> <request-URL> <version&

Jsoup问题---获取http协议请求失败 org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml.

Jsoup问题---获取http协议请求失败 1.问题:用Jsoup在获取一些网站的数据时,起初获取很顺利,但是在访问某浪的数据是Jsoup报错,应该是请求头里面的请求类型(ContextType)不符合要求. 错误信息: Exception in thread "main" org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or applic

Jsoup获取部分页面数据失败 org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or application/

用Jsoup在获取一些网站的数据时,起初获取很顺利,但是在访问某浪的数据是Jsoup报错,应该是请求头里面的请求类型(ContextType)不符合要求. 请求代码如下: private static void testOuGuanMatch() throws IOException{        Document doc = Jsoup.connect("我的URL").userAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1;

&lt;script language = &quot;javascript&quot;&gt;, &lt;script type = &quot;text/javascript&quot;&gt;和&lt;script language = &quot;application/javascript&quot;&gt;(转)

application/javascript是服务器端处理js文件的mime类型,text/javascript是浏览器处理js的mime类型,后者兼容性更好(虽然application/javascript才是正确写法,由于现在大家都写错的,导致浏览器厂商对写application/javascript兼容性更好).等以后大家都用HTML5的时候,就不需要写这个了.直接<script></script>就OK了! 另外 <script language = "ja

org.springframework.web.HttpMediaTypeNotSupportedException: Content type &#39;application/json;charset=UTF-8&#39; not supported

踩到了一个神坑,明明@RequestMapping注解并没有设置consumes,即没有限定请求参数的类型.却出现文章底部的错误,原因竟然是同一个model下注解了两个@JsonBackReference. @Entity // 用户 public class User extends IDomain { @Column(columnDefinition = "varchar(255) comment '[电话]'") private String phone; @Column(col

Spring MVC 前后台传递json格式数据 Content type &#39;application/x-www-form-urlencoded;charset=UTF-8&#39; not supported

报错如下: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported 解决方案: 引入如下包: 问题既解决. Spring MVC 前后台传递json格式数据 Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

(The application/json Media Type for JavaScript Object Notation (JSON))RFC4627-JSON格式定义

原文  http://laichendong.com/rfc4627-zh_cn/ 摘要 JavaScript Object Notation (JSON)是一个轻量级的,基于文本的,跨语言的数据交换格式.它从ECMAScript编程语言标准(ECMAScript Programming Language Standard)衍生而来.JSON定义了一组用于表示结构化数据的可移植的格式化规则. 1. 简介 JavaScript Object Notation (JSON)是用于结构化数据序列化的一

org.springframework.web.HttpMediaTypeNotSupportedException: Content type &#39;application/json;charset=UTF-8&#39; not supported或其他Content type不支持处理

很久没从头到尾搭框架,今天搭的过程中,springmvc controller方法入参用@RequestBody自动绑定参数时一直提示各种 not supported 排查问题有两个解决路径: 1)使用post协议提交时,请检查Content type类型,如: $.ajax({ type: "POST", contentType: "application/json;charset=UTF-8", url: "/reg", data: JSON

解决&quot;415 Cannot process the message because the content type &#39;application/x-www-form-urlencoded&#39; was not the expected type &#39;text/xml; charset=utf-8&#39;&quot;

wcf basicHttpBinding content-type    text/xml;charset=utf-8 wsHttpBinding  'application/soap+xml; charset=utf-8' webHttpBinding 'application/x-www-form-urlencoded'   对应网页中的post请求 所以如果是post请求wcf服务,要使用webHttpBinding 解决"415 Cannot process the message be