获取POST没有正确读取本机反应发送的请求

时间:2018-04-20 09:19:03

标签: javascript post react-native fetch fetch-api

我不确定这里的实际问题是什么,可能是API,反应原生的fetch实现,还是我的格式化。

我尝试了很多不同的格式,甚至将请求硬编码到我的应用中,但我请求的服务器API仍然返回Error 400: Bad Request和一个说unsupported_grant_type的JSON文件。 这是我发送内容的片段:

var options = {
  "method": "POST",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
     "Authorization": "Basic TWVtYmVyQ2VudGVyTGFuZGluZzp0ZXN0cGFzcw==",
   },
   "data": {
     "grant_type": "password",
     "username": "MemberCenterLanding",
     "password": "testpass"
   }
}

然后我使用基于API文档的暂存网址fetch(url, options).then(response => { return response.json()...使用http://10.64.2.149:8081/oauth/token发送了此内容。

我和邮递员一起尝试了这个请求但它有效,只是不是来自我的程序:( 我尝试使用JSON.stringify()FormData更改正文的格式,但没有任何效果。

ADD:我还尝试使用node-fetch创建要在node.js上运行的迷你请求文件,但仍然无法正常工作并产生相同的结果。有趣的是,node-request运行正常。

任何人都可以帮助我缩小这里的问题吗? 是否通过fetch()实现了本机的反应,是否与API的实现方式有关?

提前致谢!

1 个答案:

答案 0 :(得分:0)

使用body代替数据。并使用JSON.stringify将JavaScript值转换为JSON字符串。

var options = {
  "method": "POST",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
     "Authorization": "Basic TWVtYmVyQ2VudGVyTGFuZGluZzp0ZXN0cGFzcw==",
   },
   "body": JSON.stringify ({
     "grant_type": "password",
     "username": "MemberCenterLanding",
     "password": "testpass"
   }),
}