0

从 JavaScript 调用 api 时

这个 HTTP 请求工作正常https://api.pcloud.com/userinfo?username=xxxx@gmail.com&password=xxxx

在下面的代码中,我想通过 JavaScript 调用

var user='email loggin';
var password='password of pcloud';

function make_base_auth(user, password) {
  var tok = user + ':' + password;
  var hash = btoa(tok);
  return "Basic " + hash;
}

$.ajax
  ({
    type: "GET",
    url: "https://api.pcloud.com/userinfo",
    dataType: 'json',
    async: false,
    data: '{}',
    beforeSend: function (xhr){ 
        xhr.setRequestHeader('Authorization', make_base_auth(username, password)); 
    },
    success: function (){
        alert('Working Fine'); 
    }
});

在控制台输出

XMLHttpRequest 无法加载https://api.pcloud.com/userinfo?{}。预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段授权。

如果有人可以提供解决方案或增强代码。

4

1 回答 1

1

在字段中传递用户名和密码data并删除“beforeSend”部分。有关更多信息和示例,您可以查看 pCloud Javascript SDK:https ://github.com/pCloud/pcloud-sdk-js

这是工作示例(有点短):

$.getJSON("https://api.pcloud.com/userinfo", {
  username: "***", 
  password: "***"
}, function() {
  alert("working fine"); 
});
于 2017-03-09T13:18:40.363 回答