我遇到了让jQuery.ajax调用工作的问题。当脚本执行时,我得到一个错误(textStatus =“error”),但没有错误消息(errorThrown =“”)。
$.ajax({
type: 'GET',
url: 'http://www.kanbanpad.com/api/v1/projects.json',
username: 'user@example.wtf',
password: 'myAPIkey',
dataType: 'json',
success: function(data) {
alert(data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus+': '+errorThrown);
}
});
如果我手动点击API URL(上面)并输入我的登录凭据,我会得到正确的JSON响应。所以,我不确定我做错了什么。我的代码是否格式错误?
如果您需要有关API的更多信息,请转到http://www.kanbanpad.com/api/v1
答案 0 :(得分:1)
该页面正在使用HTTP basic auth,但您只是在请求中发布了用户名/密码。您必须正确设置身份验证令牌并将其传递到标头中。这是一个simple tutorial on HTTP basic auth over AJAX - 注意AJAX部分有一个特定于jQuery的例子。
答案 1 :(得分:0)
以下是修复:
将网址值更改为http://username%40domain.com:apikey@www.kanbanpad.com/api/v1...
无论出于何种原因,jQuery(1.5.1,也尝试过1.4.4)没有正确地将username
和password
参数传递给Web服务器(或根本没有? ),因此它可以通过在URL字符串中包含凭据来进行身份验证,而不是使用这些参数。
答案 2 :(得分:0)
使用URL的安全协议:https://www.kanbanpad.com/api/v1/projects.json,而不是http