问题表象
问题描述
  $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举个例子)
一种请求头引起的跨域问题记录(statusCode = 400/CORS)-LMLPHP

过程分析(问题解决之后可以不往下看了,如果没有解决,可以继续看)
报错的完整信息(第一种现象,CORS错误)

一种请求头引起的跨域问题记录(statusCode = 400/CORS)-LMLPHP

问题分析解决
注意的点
  • ng 配置的时候是区分大小写的,这里不要搞错
  • 不是所有的请求都是ng转发的,不是ng转发的时候,需要服务器自己配置
  • 前端配置请求头的时候不管是配置大小写,在真实请求的时候都会展示大写开头
  • 前端配置的时候如果希望不被改格式,可以使用中划线的方式进行定义
报错的完整信息(第二种现象,400错误)

一种请求头引起的跨域问题记录(statusCode = 400/CORS)-LMLPHP

问题分析解决
问题结束
05-16 02:49