Axios:在POST请求的正文中发送变量,而不是参数



我正在从事一个项目,我需要在请求正文中发送身份验证变量,而不是作为参数。我看到帖子请求将第二个参数发送为文档中的正文,但我在.NET服务中遇到错误。

_response: "{"error":"invalid_clientId","error_description":"ClientId should be sent."}"

我没有在身体中发送参数时在PHP中遇到相同的错误,但是值与我在此帖子请求中使用的相同,所以我知道参数和值正确。

这是我拥有的:

axios.post(`https://myawesomeapi.com`, 
{username:this.state.email_address, password:this.state.password, grant_type:'password', client_id:'thisAppsClientID'}, 
{headers: { 'content-type':'application/x-www-form-urlencoded', 'accept':'application/json' }}
).then( res => {
  let result = res.data;
  console.log(result);
})
.catch( (e) => {  console.log(e.response); });

当我安装并检查错误响应时,我会看到:

config:
   adapter: ƒ xhrAdapter(config)
   data: "{"username":"myusername","password":"mypassword!","grant_type":"password","client_id":"thisAppsClientID"}"
   headers: {Accept: "application/json, text/plain, */*", Content-Type: "application/x-www-form-urlencoded"}
...

这是我在guzzle中所拥有的,如果有帮助的话:

    $this->client->request('post', 'https://myawesomeapi.com',
['form_params' => ['username' => $input['username'], 'password' => $input['password'], 'client_id'=>'thisAppsClientID', 'grant_type'=>'password']],
['headers' => ['accept' => 'application/json','Content-Type' => 'application/x-www-form-urlencoded']]);

用户名,密码,授予_type和client_id作为身体传递?我搞砸了如何发送标头吗?谢谢,让我知道!

我知道我对Axios遇到了类似的问题,我从未完全弄清楚。但是,我能够获得邮政请求以使用表单数据。尝试下面的摘要。我希望它有效。

const dataForm = new FormData();
dataForm.append('username', this.state.email_address);
dataForm.append('password', this.state.password);
dataForm.append('grant_type', 'password');
dataForm.append('client_id', 'thisAppsClientID');
axios.post('https://myawesomeapi.com', dataForm)
.then(res => {
  let result = res.data;
  console.log(result);
})
.catch(e => { 
  console.log(e.response); 
});

相关内容

  • 没有找到相关文章

最新更新