response的contentType 几种类型

ajax开发中在请求服务器端的响应时, 对于每一种返回类型 规范的做法是要在服务端指定response的contentType 的. (当然 不指定绝大多数情况下也没什么问题 尤其是返回”非xml”的时候) 。

常遇到下面的几种情况:
1、 服务端需要返回一段普通文本给客户端,Content-Type=”text/plain”
2 、服务端需要返回一段HTML代码给客户端 ,Content-Type=”text/html”
3 、服务端需要返回一段XML代码给客户端 ,Content-Type=”text/xml”
4 、服务端需要返回一段javascript代码给客户端
5 、服务端需要返回一段json串给客户端

我们主要讨论返回javascript代码和Json对象的情况。

javascript 的 contentType 按最标准的写法 应该是 application/javascript。而常用的 text/javascript 已经被 rfc定义为废弃的。

但是 在这里暂时不建议使用 application/javascript . 大家还是继续使用 text/javascript 为好. 因为很多老旧浏览器并不支持 application/javascript . 而所有浏览器都支持text/javascript. 在标准和广泛的兼容性之间 还是暂且选择后者吧。

json 的 contentType 常见写法有 : text/json & text/javascript .
但是 这个 text/json 其实是根本不存在的, 而 text/javascript 在有些时候客户端处理起来会有歧义. 对于json的contentType , rfc里定义的标准写法是 :application/json.
在这里毫无疑问 我们应该选择标准写法的 application/Json。

@的使用
基本使用

"@123456"表示输出123456到页面
"@中文english"表示输出"中文english"到页面

规范化contentType

"@json:xxxx"、"@applicaiton/x-json:xxxx"表示输出content-type为application/x-json的xxx字符串到客户端
"@xml:xxxx"、"@application/xml:xxxx" 表示输出content-type为application/xml的xxxx字符串到客户端
"@plain:xxxx"、"@text:xxxxx"、"@text/plain:xxxxx" 表示输出content-type为text/plain的字符串到客户端
"@xxxxx"、"@html:xxxx"、"@text/html:xxxxx" 表示输出content-type为text/html的字符串到客户端

我们支持以下Content-Type:json、xml、html、plain、text、所有以text/开始的,比如text/html、text/plain、text/javascript等;所有以application/开头的,比如applicaton/x-json等,其他的概不支持。
可以加;charset=UTF-8等修饰

"@json:xxxx;charset=UTF-8"、"@applicaiton/x-json:xxxx;charset=UTF-8"表示输出content-type为application/x-json;charset=UTF-8的xxx字符串到客户端

技巧

"@text/plain:json:xxxxx"、"@plain:json:xxxxx"、"@text:json:xxxxx"表示输出content-type为text/plain的"json:xxxxx"到客户端
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring中使用RestTemplate发送HTTP请求时,可以通过设置contentType来指定请求的内容类型。下面是设置contentType几种方式: 1. 使用HttpHeaders对象设置contentType: ```java RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity<String> requestEntity = new HttpEntity<>(requestBody, headers); restTemplate.exchange(url, HttpMethod.POST, requestEntity, responseType); ``` 上述代码中,通过创建HttpHeaders对象,并使用setContentType方法设置为MediaType.APPLICATION_JSON,表示请求的内容类型为JSON。 2. 使用MultiValueMap对象设置contentType: ```java RestTemplate restTemplate = new RestTemplate(); MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); headers.add("Content-Type", "application/json"); HttpEntity<String> requestEntity = new HttpEntity<>(requestBody, headers); restTemplate.exchange(url, HttpMethod.POST, requestEntity, responseType); ``` 上述代码中,通过创建MultiValueMap对象,并使用add方法添加"Content-Type"和"application/json"作为请求头信息,表示请求的内容类型为JSON。 3. 直接设置请求头信息: ```java RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.set("Content-Type", "application/json"); HttpEntity<String> requestEntity = new HttpEntity<>(requestBody, headers); restTemplate.exchange(url, HttpMethod.POST, requestEntity, responseType); ``` 上述代码中,通过调用HttpHeaders对象的set方法直接设置"Content-Type"和"application/json"作为请求头信息,表示请求的内容类型为JSON。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值