在React中尝试对Harvest API进行身份验证时出现错误请求(400)

erwstout

因此,我正在为办公室中的开发人员建立一个状态板供内部使用。它将显示提交次数,跟踪的小时数等。

我正在遵循此模型进行身份验证。用户以Harvest登录后,会将他们重定向到应用程序,并将代码参数作为查询字符串,然后我将该查询字符串传递给一个状态,然后进行提取以获取访问令牌(因此我稍后可以提取API数据)。

发生的情况是登录成功,但是当您重定向回应用程序时,访存将引发错误请求(400)错误。我已经在Postman中进行了测试,可以得到正确的答复,所以我不确定问题是什么...

这是Main组件中的一些JS,它们在存在代码参数的情况下设置状态:

harvestState() {

// grab URL params
let urlParams = queryString.parse(location.search);
console.log(urlParams);
console.log(urlParams.code);

// set the state based on the paramater passed back
urlParams.code ? (
  this.setState({
    harvestcode: urlParams.code
  })
) : (
  this.setState({
    harvestcode: 'none'
  })
);
}

componentWillMount(){
  this.harvestState();
}

这是我的Harvest组件中的访存函数:

  getHarvest(){
    const clientSecret = 'XXXXXXXXXX';
    // Set Harvest Headers
   const harvestHeaders = {
     headers: {
       'Content-Type': 'application/x-www-form-urlencoded',
     },
    method: 'POST',
    mode: 'no-cors',
    body: {
      'code': this.props.code,
      'client_id': this.props.clientid,
      'client_secret': clientSecret,
      'redirect_uri': 'http://dash.mycompany.me',
      'grant_type': 'authorization_code'
    }
   };

   fetch('https://mycompany.harvestapp.com/oauth2/token', harvestHeaders)
   .then( response => response.json() )
   .then( token => {

     console.log(token);

   } )
  }

  componentDidMount(){
    if( this.props.code !== 'none' ){
      this.getHarvest();
    }
  }

我在这里做错什么了吗?为什么总是返回错误请求?任何帮助,将不胜感激。谢谢!

sideshowbarker

至少有一个问题是,当您使用mode: 'no-cors'浏览器时,它告诉浏览器将响应作为不透明的响应来处理,这意味着您在告诉浏览器不要使响应对象的任何属性都可以从JavaScript访问。

因此,如果您提出mode: 'no-cors'请求,response => response.json()将会失败。

no-cors在实践中,唯一的目的是与Service Worker结合使用,当您只是从响应中缓存资源(例如图像)时,无需获取响应的属性。

无论如何,考虑到客户端Web应用程序使您的部署请求是从不同的起源比服务器的请求被发送到,浏览器会阻止必要的CORS包头中,除非服务器响应请求运行Access-Control-Allow-Origin,一开始。有关说明,请参见MDN文章HTTP访问控制(CORS)

也就是说,浏览器会阻止由JavaScript发出的跨域请求,除非将请求发送到服务器的服务器选择加入以允许使用Access-Control-Allow-Origin响应标头等。Postman不会阻止此类请求的原因是,Postman不是在Web上某个特定来源运行的任意Web应用程序,而是您有意安装的浏览器插件。因此,它不受浏览器对Web应用程序实施的跨域限制的约束。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Win 8 App中为Stackexchange API使用身份验证代理时出现错误400

来自分类Dev

尝试使用 reddit api 和 python 3 进行身份验证时出现 401 错误

来自分类Dev

尝试在Laravel 5.2中进行手动身份验证时出现奇怪的错误

来自分类Dev

尝试在Laravel 5.2中进行手动身份验证时出现奇怪的错误

来自分类Dev

POST 400错误请求React身份验证

来自分类Dev

尝试进行身份验证以进行数据抓取时出现Cookie错误

来自分类Dev

尝试使用Auth0对用户进行身份验证时出现CORS错误

来自分类Dev

尝试通过jwt进行身份验证时出现Docusign错误“需要同意”

来自分类Dev

尝试使用Firebase身份验证时出现错误

来自分类Dev

Gmail API 错误:尝试进行身份验证时 redirect_uri_mismatch。(PHP)

来自分类Dev

尝试使用 Cognito 与 Battle.net OIDC 进行身份验证时出现错误的 id_token 颁发者

来自分类Dev

尝试启动pymongo中的副本集时出现身份验证错误

来自分类Dev

尝试使用Flask在MongoDB中插入字段时出现身份验证错误

来自分类Dev

尝试启动pymongo中的副本集时出现身份验证错误

来自分类Dev

当我尝试对 oauth1 进行身份验证时,rest api 返回 Invalide_signature 错误

来自分类Dev

尝试使用自定义身份验证扩展时出现SSRS 2012配置错误

来自分类Dev

尝试使用Active Directory身份验证推送到GitLab时出现500错误

来自分类Dev

尝试更改我的用户密码时出现“身份验证令牌操作”错误

来自分类Dev

我正在尝试通过Facebook进行身份验证,但出现错误TokenError:验证码格式错误

来自分类Dev

尝试使用节点请求进行身份验证

来自分类Dev

尝试在我的网站中进行身份验证时如何避免此Facebook错误?

来自分类Dev

NTAG213:尝试使用错误的密码进行身份验证时,Android引发IOException

来自分类Dev

403使用Python在Google API中创建草稿时,“请求的身份验证范围不足”

来自分类Dev

尝试连接到 Sabre API 时出现错误 (400) 错误请求

来自分类Dev

如何对REST中的每个请求强制进行身份验证?

来自分类Dev

如果URL中存在参数,则Twitter API返回“无法对您进行身份验证”错误

来自分类Dev

尝试与Java Smartcardio进行相互身份验证后出现0x6A88错误

来自分类Dev

向JSON REST API进行身份验证时如何获取会话令牌(在R中)

来自分类Dev

通过Python中的BeautifulSoup抓取时进行身份验证

Related 相关文章

  1. 1

    在Win 8 App中为Stackexchange API使用身份验证代理时出现错误400

  2. 2

    尝试使用 reddit api 和 python 3 进行身份验证时出现 401 错误

  3. 3

    尝试在Laravel 5.2中进行手动身份验证时出现奇怪的错误

  4. 4

    尝试在Laravel 5.2中进行手动身份验证时出现奇怪的错误

  5. 5

    POST 400错误请求React身份验证

  6. 6

    尝试进行身份验证以进行数据抓取时出现Cookie错误

  7. 7

    尝试使用Auth0对用户进行身份验证时出现CORS错误

  8. 8

    尝试通过jwt进行身份验证时出现Docusign错误“需要同意”

  9. 9

    尝试使用Firebase身份验证时出现错误

  10. 10

    Gmail API 错误:尝试进行身份验证时 redirect_uri_mismatch。(PHP)

  11. 11

    尝试使用 Cognito 与 Battle.net OIDC 进行身份验证时出现错误的 id_token 颁发者

  12. 12

    尝试启动pymongo中的副本集时出现身份验证错误

  13. 13

    尝试使用Flask在MongoDB中插入字段时出现身份验证错误

  14. 14

    尝试启动pymongo中的副本集时出现身份验证错误

  15. 15

    当我尝试对 oauth1 进行身份验证时,rest api 返回 Invalide_signature 错误

  16. 16

    尝试使用自定义身份验证扩展时出现SSRS 2012配置错误

  17. 17

    尝试使用Active Directory身份验证推送到GitLab时出现500错误

  18. 18

    尝试更改我的用户密码时出现“身份验证令牌操作”错误

  19. 19

    我正在尝试通过Facebook进行身份验证,但出现错误TokenError:验证码格式错误

  20. 20

    尝试使用节点请求进行身份验证

  21. 21

    尝试在我的网站中进行身份验证时如何避免此Facebook错误?

  22. 22

    NTAG213:尝试使用错误的密码进行身份验证时,Android引发IOException

  23. 23

    403使用Python在Google API中创建草稿时,“请求的身份验证范围不足”

  24. 24

    尝试连接到 Sabre API 时出现错误 (400) 错误请求

  25. 25

    如何对REST中的每个请求强制进行身份验证?

  26. 26

    如果URL中存在参数,则Twitter API返回“无法对您进行身份验证”错误

  27. 27

    尝试与Java Smartcardio进行相互身份验证后出现0x6A88错误

  28. 28

    向JSON REST API进行身份验证时如何获取会话令牌(在R中)

  29. 29

    通过Python中的BeautifulSoup抓取时进行身份验证

热门标签

归档