智慧.客户端API调用失败

Wit.ai API Call Fails in Client

本文关键字:失败 调用 API 客户端 智慧      更新时间:2023-09-26

我正在尝试向Wit发出API请求。ai通过javascript (ReactJS)。我的浏览器网络选项卡显示调用失败,并显示消息:

"error": "Bad auth, check token/params"

然而,同样的调用在Wit中显示为成功。ai日志。我已经验证了凭证是正确的,我可以成功地通过终端cUrl呼叫。

电话:

async action() {
    const resp = await fetch('https://api.wit.ai/message?v=20160526&q=hello', {
      method: 'GET',
      headers: {
        'Authorization': "Bearer " + accessToken
      },
      dataType: 'jsonp',
      mode: 'no-cors',
      credentials: 'include'
    }).then(resp => resp.json()).catch(e => console.log('Boo', e));
}

由于这是一个JSONP请求,因此即使请求已正确执行,也会出现"输入的意外结束"。我不确定是否有任何方法可以使它不通过应用服务器代理请求而工作。无论如何,对于这种请求,完全删除headers,并将访问令牌移动到查询字符串中作为access_token查询参数:

await fetch(`https://api.wit.ai/message?v=20160526&q=hello&access_token=${accessToken}`, {
  method: 'GET',
  dataType: 'jsonp',
  mode: 'no-cors',
  credentials: 'include'
}).then(resp => resp.json()).catch(e => console.log('Boo', e));

查看浏览器上的"Network"选项卡,查看请求已成功解决,即使在执行此fetch调用期间已达到catch块。