问题表象
问题描述
$http({
method: "post",
url:
constants.backend.SERVER_LOGIN_IP_V2 +
constants.backend.REQUEST_METHOD.LOGINMESAG,
data: JSON.stringify(obj),
dataType: "json",
headers: {
"Content-Type": "application/json",
"csdn":"this is test" // 这里是为了演示,写了一个csdn的头信息
},
})
这个时候我们请求的时候会发现,会报错如上图,具体看这里:
问题解决
我们需要在Access-Control-Allow-Headers: (一般是ng中配置的) 添加我们需要的请求头信息 配置的信息我们是可以看到的,比如配置结束之后请求的完全体是这样的:(这里没有csdn,我只是使用csdn举个例子)
过程分析(问题解决之后可以不往下看了,如果没有解决,可以继续看)
报错的完整信息(第一种现象,CORS错误)
问题分析解决
注意的点
- ng 配置的时候是区分大小写的,这里不要搞错
- 不是所有的请求都是ng转发的,不是ng转发的时候,需要服务器自己配置
- 前端配置请求头的时候不管是配置大小写,在真实请求的时候都会展示大写开头
- 前端配置的时候如果希望不被改格式,可以使用中划线的方式进行定义