API与Postman一起工作,但与Javascript获取一起失败
我有一个API,我必须将json主体与基本身份验证一起发布到该API。这对我来说在使用postman时很有效,但是,我无法使用Javascript获取方法 我的请求是:API与Postman一起工作,但与Javascript获取一起失败,javascript,cors,fetch,postman,basic-authentication,Javascript,Cors,Fetch,Postman,Basic Authentication,我有一个API,我必须将json主体与基本身份验证一起发布到该API。这对我来说在使用postman时很有效,但是,我无法使用Javascript获取方法 我的请求是: { "plan_id": "plan_AbN7hMdqK8hJ1R", "customer_notify": 1, "total_count": 6 } 邮递员截图: 邮递员身体字段: 正如你所看到的,我得到的结果没有任何问题。然而,当我使用下面的代码在Javascript中执行同样的操作时,它失败了 var
{
"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();
})
})
我得到以下错误:
一,
401后
未经授权
二,
承诺中未捕获的语法错误:输入意外结束
索引:89
三,
跨源读取阻塞CORB阻塞跨源响应
使用MIME类型
application/json。看见
更多
细节
我认为你应该改变这一行:
Authorization':'Basic ' + btoa({'user':'passkey'});
或
希望它能起作用。除非您在同一域下运行您的Web应用程序,否则您必须在服务器中启用。在标题“授权”部分的“基本”之前似乎缺少一个引号:“基本”+btoa“用户:密钥”@DeadLock对不起,粘贴到此处时发生了一个错误。谢谢你指出。已修复。@Madham让我从服务器上检查。@esafwan,检查您的web url,如果它与http://api.somepay.com,那么你是在讨论CORS问题。
Authorization':'Basic ' + btoa(user.passkey);