今天遇见一个情况,验证token的接口第一次请求报500,重定向后第二次请求接口正常。
经过检查和测验,发现是与请求的参数有关,接口请求中是否包含Content-Type,发的请求里,有一部分有这个参数,有一部分没有。导致在在http解析的时候报错,所以返回500
解决方案:
让后端同事改了下http解析逻辑,没有content type的,也放过,不报错。
关于Content-Type:
GET请求
对于GET请求,通常不需要设置Content-Type。这是因为GET请求主要用于获取数据,不包含请求体,因此不需要指定消息体的格式。例如,当使用axios发送GET请求时,通常不需要设置Content-Type
POST请求
对于POST请求,Content-Type是必需的,因为它告诉服务器发送的数据类型。常见的Content-Type类型包括:
- application/json:用于发送JSON格式的数据。这是axios的post方法中默认的Content-Type
- application/x-www-form-urlencoded:用于发送键值对形式的表单数据。HTTP会将请求参数用key1=val1&key2=val2的方式进行组织,并放到请求实体里面
- multipart/form-data:用于上传文件时使用
- application/xml:用于发送XML格式的数据
默认值和自定义设置
对于axios的POST请求,如果未显式设置Content-Type,axios会默认使用application/json。如果需要发送其他类型的数据,可以在请求配置中指定Content-Type。例如,使用application/x-www-form-urlencoded类型时,可以通过axios的transformRequest选项来处理数据序列化。