Content-Type的使用说明

前端在调接口的时候,经常会出现返回500错误的问题。但是用postman调接口却是没问题的,这说明自己的写法或是传参有问题。
经过自己多次总结,发现问题主要集中在Content-Type这个属性上。

postman返回结果说明

任何时候开始写代码掉接口之前,应该先用postman调一下。如果postman返回结果是ok的,说明接口没问题。反之接口有问题。
下面是接口返回正确结果后的内容。

Access-Control-Allow-Credentials →true
Access-Control-Allow-Headers →Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers
Access-Control-Allow-Origin →*
Access-Control-Request-Methods →GET,POST,HEAD,PUT,OPTIONS,DELETE,TRACE,CONNECT,MOVE,PROXY
Content-Length →16
Content-Type →application/json
Date →Tue, 02 May 2017 10:58:32 GMT
Server →Werkzeug/0.12.1 Python/2.7.6

注意到Content-Type→application/json。此处是后台返回的数据类型。

参考文章: http://blog.csdn.net/calyxmelo/article/details/54969244

不使用contentType: “application/json”则data可以是对象

$.ajax({
  url: actionurl,
  type: "POST",
  datType: "JSON",
  data: { id: nodeId },
  async: false,
  success: function () {}
});

使用contentType: “application/json”则data只能是json字符串,也就是要对对象格式化为字符串,通常使用 var newObj=JSON.stringify(obj)

$.ajax({
  url: actionurl,
  type: "POST",
  datType: "JSON",
  contentType: "application/json"
  data: "{'id': " + nodeId +"}",
  async: false,
  success: function () {}
});

data也可以这样写:

data:JSON.stringify({'id': + nodeId })

在Postman中调接口时,注意text类型。
个人猜想:如果是text类型,那么需要将JSON.stringify(obj)格式化为文本


Content-Type的使用说明_第1张图片
image.png

如果是其他类型呢?data数据该怎么处理?
无奈自己不懂后端,很多想法无法验证。


Content-Type的使用说明_第2张图片
image.png

你可能感兴趣的:(Content-Type的使用说明)