React Native - 无法从 Web API 获取令牌 asp.net



我正在尝试为我的React Native应用程序进行登录屏幕,但是我无法从我的Web API中获得身份验证令牌。

我和邮递员一起尝试,我可以获得令牌。

我尝试了Fetch Api和Adios发布,没有成功。

这是我的获取代码

   fetch("https://ahmetkocadogan.a2hosted.com/token", {
    method: "POST",
    headers: {
      Accept: "application/json",
      "Content-Type": "application/x-www-form-urlencoded",
    },
    body: JSON.stringify({
      grant_type: "password",
      deviceId: "ahmet",
      username: "ahmet",
      password: "123456",
    })
  }).then(response => {console.log(response);})
    .catch(error => {
      console.log(error);
    });
  }

我的API令牌URL是:https://ahmetkocadogan.a2hosted.com/token

在Postman中,我将标题添加为Accept -Application/json,content -type-应用程序/x -www.form.urlencoded

和身体:grant_type-密码,用户名 - ahmet,密码-123456,deviceid -ahmet

我从Postman那里得到令牌。

有什么想法吗?我的获取代码有什么问题?

我通过使用React Native的提取而解决了它,并更改了我的请求标题的创建。

  var headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/x-www-form-urlencoded'
  }
  var details = {
    'username': 'ahmet',
    'password': password,
    'grant_type': 'password',
    'deviceId': 'ahmet'
  };
  var formBody = [];
  for (var property in details) {
    var encodedKey = encodeURIComponent(property);
    var encodedValue = encodeURIComponent(details[property]);
    formBody.push(encodedKey + "=" + encodedValue);
  }
  formBody = formBody.join("&");
  console.log('fetch baslıyor');
  let result = await fetch(API_ROOT_URL + '/token', {
     method: 'POST',
     headers: {
       'Accept': 'application/json',
       'Content-Type': 'application/x-www-form-urlencoded'
     },
     body: formBody
   });
  let resultJson = await result.json();

现在起作用。

相关内容

  • 没有找到相关文章

最新更新