我有一个API,必须向其发布JSON正文以及基本身份验证。使用邮递员时这对我有用,但是,我无法使其与Javascript Fetch
方法一起使用。
我的请求正文为:
{
"plan_id": "plan_AbN7hMdqK8hJ1R",
"customer_notify": 1,
"total_count": 6
}
如您所见,获得的结果没有任何问题。但是,当我使用以下代码在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)阻止了跨源响应 https://api.apipay.com/v1/subscriptions,MIME类型 应用程序/ json。看到 https://www.chromestatus.com/feature/5629709824032768了解更多 详细信息。
答案 0 :(得分:-1)
我认为您应该更改此行:
Authorization':'Basic ' + btoa({'user':'passkey'});
或
Authorization':'Basic ' + btoa(user.passkey);
希望它能起作用。