【发布时间】:2013-04-03 14:04:01
【问题描述】:
据我所知,我的问题是我的 GET 请求未经授权。但是我尝试在标头中添加授权或作为 URL 中的值(api 密钥、用户名、密码)没有成功。
例如。
$.ajax({
type: 'get',
async: false,
beforeSend: function(xhr){
xhr.setRequestHeader('Authorization', 'Basic encodedusername:passwordhere');
},
url: "https://api.pingdom.com/api/2.0/checks",
success: function(Data) {
console.log(Data);
},
error: function(Data) {
}
});
谁能建议更正与 Pingdom API 交互的 Javascript 语法?我相信我正在尝试错误地授权他们的文档侧重于我在这种情况下无法使用的 PHP。
https://www.pingdom.com/services/api-documentation-rest/#authentication
【问题讨论】:
-
据我所知,您应该提供的不是 encodeBase64(login) + ":" + encodeBase64(pass),而是 encodeBase64(login + ":" + pass);此外,您的数据提供者似乎需要另一个标头 App-Key;并离开:async:false 是一种非常糟糕的做法。
-
这就是我正在使用的。抱歉,我想我用过的占位符很难说清楚。只返回“加载资源失败:服务器响应状态为 401(未授权)”并且我确定用户和密码是正确的,因为导航到 api.pingdom.com/api/2.0/checks 并在弹出窗口中输入它们可以正常工作。
-
确保您还发送了 App-Key 标头。并尝试使用一些网络调试器(我推荐 fiddler,但可以使用 chrome 的 webinspector)来检查您的请求是否确实包含所需的标头。
-
啊有趣,在 beforesend 函数中添加
xhr.setRequestHeader('App-Key', 'myapikeyhere');会返回类似但不同的错误OPTIONS https://api.pingdom.com/api/2.0/checks 401 (Unauthorized)我现在一定会检查 fiddler 和 webinspector。
标签: javascript jquery ajax api pingdom