首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Fetch in ReactJS (带有标头和请求体)进行POST调用

使用Fetch in ReactJS (带有标头和请求体)进行POST调用
EN

Stack Overflow用户
提问于 2018-08-09 09:33:21
回答 1查看 1.4K关注 0票数 1

我对任何类型的编码都是完全没有发言权的。

我正在尝试使用第三方供应商公开的这个API。这些是电话的细节。

API的URL为PORT)/midsizeable/HJK/CheckerRun

代码语言:javascript
代码运行次数:0
运行
复制
 - Request Headers :
servicename:login  
frontofficeid:Checker 
id:Mobile
language:1 
Content-Type:application/json 
loginid:SYSADMIN1

Request Body: 
{  "data" : 
  {  "attributes": 
     {    "loginId": "SYSADMIN1", 
          "password": "abcd1234", 
           "pmuv": "RTY" 
}  
}
}

以下是我尝试过的:

代码语言:javascript
代码运行次数:0
运行
复制
 componentDidMount(){
    var myHeaders = new Headers();
    myHeaders.append('Accept' ,  'application/json');
    myHeaders.append('Content-Type' ,  'application/json');
    myHeaders.append('servicename' ,  'login');
    myHeaders.append('frontofficeid' ,  'Checker');
    myHeaders.append('id' ,  'Mobile');
    myHeaders.append('language' ,  1);
    myHeaders.append('loginid' ,  'SYSADMIN1');

    const myInit = {
      method : "POST",
      data : {
        attributes: {
          loginId: "SYSADMIN1",
          password: "abcd1234",
          pmuv: "RTY"
        }
      },
      headers: myHeaders
    };
    var url="http://<HOST_IP>:<HOST_PORT>/midsizeable/HJK/CheckerRun"

    var myRequest = new Request(url)
    fetch(myRequest, myInit)
      .then((response) => {
        console.log(response)
        return response.json();
      })
      .then((jsonObject) => {
      console.log("BODY ")
      console.log("This is Obj" , jsonObject)
        this.setState({
          message : jsonObject.id,
        })
      })
      .catch((error) => {
        console.log(error);
      });


  }

虽然这是可以运行的,但我得到了一个错误500(内部服务器错误)。同时,我还捕获了"SyntaxError: JSON中位于0"的意外令牌j。

我知道这不是内部服务器错误,因为当我在linux服务器上使用curl运行这个命令时,它给出了正确的运行。

我搜索了很多次,但在任何地方都找不到错误。请帮助构造API调用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-09 12:13:39

您需要将请求正文中使用的对象转换为JSON字符串。

代码语言:javascript
代码运行次数:0
运行
复制
const myInit = {
  method: "POST",
  data: JSON.stringify({
    attributes: {
      loginId: "SYSADMIN1",
      password: "abcd1234",
      pmuv: "RTY"
    }
  }),
  headers: myHeaders
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51763523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档