superagent 设置自定义请求 headers es6 不是 Access-Control-Request-Headers

superagent set custom request headers es6 not Access-Control-Request-Headers

我知道这在 post 中得到了解决,但我仍然无法使用 ES6 设置自定义 header 并且想知道是否有人 运行问题?问题是什么时候使用 .set 设置 header 我只将 Access-Control-Request-Header 设置为我想要设置的标签并且值丢失了。我想使用 superagent 在请求 header 上设置一个自定义字段,但不确定如何设置。

假设我运行在我的应用程序(客户端)中使用它

import ajax from 'superagent'

ajax.get(baseURL + "/query/")
    .query({q: "SELECT Id FROM USER WHERE Id=" + id})
    .set('X-Authorization', 'Oauth ' + token)
    .set('Content-Type', 'application/json')
    .end((error, response) => {
        if(errro) { console.log(error); }
    }

get 请求发出的 header 包含:

Access-Control-Request-Headers:content-type, x-authorization

在浏览器调试器的网络选项卡中的请求 Headers 下。我想设置 get 的 headers,以便在浏览器调试器的网络选项卡中的 Request Headers 下,我看到:

X-Authorization:  some_token
Content-Type: application/json

有没有人知道我如何设置请求 Headers 以得到任何 field/value 我想使用 ES6 和 superagent?

感谢所有先进!

在调用 get 之前尝试将以下代码添加到您的脚本中。

ajax._defaultHeaders = {};

function isObject(obj) { return Object(obj) === obj; };

ajax.set = (function (field, value) {
   if (isObject(field)) {
      for(var key in field) this.set(key, field[key]);
      return this;
   }
   this._defaultHeaders[field] = value;
   return this;
}).bind(ajax)

曾经在 Spring 引导应用程序和前端的 React JS 中遇到过类似的问题。

当我转储附加到 RQ 的 headers 时,我曾经只看到 headers 模式:

Access-Control-Request-Headers:content-type, x-authorization, etc...

然而,这是与我的后端应用程序相关的问题,而不是与前端的 superagent 相关的问题。 我必须在 WebSecurityConfig 中打开 cors() 才能看起来类似于这个:

@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
    httpSecurity.csrf().disable()
            .cors().and()
            .authorizeRequests().antMatchers("/auth/login", "/auth/register").permitAll().
            anyRequest().authenticated().and().
            exceptionHandling().authenticationEntryPoint(jwtAuthenticationEntryPoint).and().sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS);

如您所见,问题出在 Spring 配置上,而不是 Superagent,

问候 R.