反应本机能够使用access_token进行GET但无法进行POST,则返回“未经身份验证”。

时间:2019-03-29 10:19:36

标签: javascript php laravel react-native

我将Axios GET与标头access_token传递给Laravel API一起使用,效果很好。创建使用POST的另一种方法后,并创建Axios POST,并传入标头access_token,但它返回错误“未经身份验证”。 我可以知道如何解决这个问题吗?谢谢。

我尝试用相同的方法将GET更改为POST,而GET成功,但是POST仍然返回错误“未经身份验证”。

 getEmployeeClockInPosition = async () => {
      let GET_EMPLOYEE_COMPANY_POSITION = 'http://localhost/get-employee-company-location';
      await axios.post(GET_EMPLOYEE_COMPANY_POSITION, {
        headers: {
          'Content-Type' : 'application/json',
          'Authorization' : 'Bearer '+ this.props.authState.accessToken,
          'Accept' :'application/json',
        },
        userID: this.props.authState.id,
      })
      .then(res => {
        console.log(res.data);
      })
      .catch(function(error) {
        console.log(error);
      });
    }
Route::group(['middleware' => 'auth:api'], function() {
        Route::post('/get-employee-company-location','Clocking\DashboardController@getEmployeeCompanyLocation');
});

1 个答案:

答案 0 :(得分:1)

根据官方documentationaxios.post的参数应按以下顺序排列:

axios.post(url[, data[, config]])

在您的情况下,请在数据之前提供发布配置。

请尝试这种方法:

let postData = {
  userID: this.props.authState.id
}

let config = {
  headers: {
    'Content-Type' : 'application/json',
    'Authorization' : 'Bearer '+ this.props.authState.accessToken,
    'Accept' :'application/json'
  }
}

axios.post(GET_EMPLOYEE_COMPANY_POSITION, postData, config)