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

我有一个API,我必须将json主体与基本身份验证一起发布到该API。这对我来说在使用postman时很有效,但是,我无法使用Javascript获取方法

我的请求是:

{
  "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);