Reactjs 如何在帖子标题中添加函数

Reactjs 如何在帖子标题中添加函数,reactjs,post,header,authorization,token,Reactjs,Post,Header,Authorization,Token,目标正在发送自动化标头包含令牌的POST请求 它的功能是: export function authHeader() { // return authorization header with jwt token let user = JSON.parse(localStorage.getItem('user')); if (user && user.token) { return { 'Authorization': 'Bearer '

目标正在发送自动化标头包含令牌的POST请求

它的功能是:

export function authHeader() {

    // return authorization header with jwt token
    let user = JSON.parse(localStorage.getItem('user'));
    if (user && user.token) {
        return { 'Authorization': 'Bearer ' + user.token };
    } else {
        return {};
    }
}
以下是发送到服务器的异步函数:

    export async function submitToServer(values){
        try{
            let response = await fetch('http://localhost:50647/fund/submitfund', {
                method: 'POST',
                headers: {
                  'Accept': 'application/json',
                  'Content-Type' :  'application/json',
                  authHeader()
            },
            body: JSON.stringify(values),
          });
          let responseJson = await response.json();
          return responseJson;

    }   catch (error) {
            console.error(error);
    }
  }
如何将authHeader()添加到POST中的标题以正确授权此请求?

使用类似于,
…authHeader()
。您的
authHeader
函数返回一个对象
{'Authorization':'Bearer'+user.token}
{}
。您需要的是将其合并到使用
headers
键附加的对象,因此
操作符是正确的工具

因此,您的代码将是:

export async function submitToServer(values) {
  try {
    let response = await fetch('http://localhost:50647/fund/submitfund', {
      method: 'POST',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
        ...authHeader()
      },
      body: JSON.stringify(values),
    });
    let responseJson = await response.json();
    return responseJson;

  } catch (error) {
    console.error(error);
  }
}
使用类似于,
…authHeader()
。您的
authHeader
函数返回一个对象
{'Authorization':'Bearer'+user.token}
{}
。您需要的是将其合并到使用
headers
键附加的对象,因此
操作符是正确的工具

因此,您的代码将是:

export async function submitToServer(values) {
  try {
    let response = await fetch('http://localhost:50647/fund/submitfund', {
      method: 'POST',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
        ...authHeader()
      },
      body: JSON.stringify(values),
    });
    let responseJson = await response.json();
    return responseJson;

  } catch (error) {
    console.error(error);
  }
}

如果我有该类型的对象:user:“{\n”id:“2737b3da-51da-48e0-87e1-dd536444cfb3”,\n“auth_令牌”:"1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2 2.2 2.2 2.2.2 2.2 2.2.2 2.2.2.2.2.2.2 2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.gQSVdsN38U0NXjqEQ78l6fbSVLruSlpxaQai5qJJI64“,\n“expires_in:21600\n}”,如何请求身份验证令牌?user.auth_令牌?如果我有该类型的对象:user:'{\n“id”:“2737b3da-51da-48e0-87e1-dd536444cfb3”,“身份验证令牌”:1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2 2.2 2.2 2.2.2 2.2 2.2.2 2.2.2.2.2.2.2 2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.gQSVdsN38U0NXjqEQ78l6fbSVLruSlpxaQai5qJJI64“,\n“expires_in”:21600\n}”,如何请求身份验证令牌?user.auth_令牌?