繁体   English   中英

API可与Postman一起使用,但无法与Javascript Fetch一起使用

[英]API works with Postman but fails with Javascript Fetch

我有一个API,必须向其发布JSON正文以及基本身份验证。 这在使用邮递员时对我有用,但是,我无法使其与Javascript Fetch方法一起使用。

我的要求是:

{
  "plan_id": "plan_AbN7hMdqK8hJ1R",
  "customer_notify": 1,
  "total_count": 6
}

邮差截图: 邮递员的标题和URL视图

邮递员身体领域: 在此处输入图片说明

如您所见,获取结果没有任何问题。 但是,当我使用以下代码在Javascript中执行相同操作时,它将失败。

var url = "https://api.somepay.com/v1/subscriptions"

var body = {
  "plan_id": "plan_AbN7hMdqK8hJ1R",
  "customer_notify": 1,
  "total_count": 6
   }

// handle click 
button.on("click", function(){
  fetch(url, 
    {
      method: 'post',    
      mode: 'no-cors',
      body : JSON.stringify(body),
      headers: {
        'Authorization': 'Basic ' + btoa('user:passkey'),
        'Content-Type' :'application/json',
        'Accept' :'application/json'    
        },
    }).then(function(response) {
        return response.json();
    })

})

我收到以下错误:

在此处输入图片说明

1。

POST https://api.razorpay.com/v1/subscriptions 401(未经授权)

2。

未捕获(在承诺中)SyntaxError:在(index):89的输入意外结束

3。

跨域读取阻止(CORB)阻止了MIME类型为application / json的跨域响应https://api.apipay.com/v1/subscriptions 有关更多详细信息,请参见https://www.chromestatus.com/feature/5629709824032768

我认为您应该更改此行:

Authorization':'Basic ' + btoa({'user':'passkey'});

要么

Authorization':'Basic ' + btoa(user.passkey);

希望它能工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM