我试图通过ajax访问下面的webservice,但它无法正常工作。 http://task.woo.gy/api/v1/article/?format=json 用户名: - root 密码: - rohit
ajax功能
$.ajax({
type: "POST",
url: "http://task.woo.gy/api/v1/article/?format=json",
data: "{ 'username': 'root', 'password': 'rohit'}",
contentType: "application/json; charset=utf-8",
success: ajaxCallSucceed_allorder,
dataType: "json",
failure: ajaxCallFailed_allorder
});
function ajaxCallSucceed_allorder()
{
alert('success');
}
function ajaxCallFailed_allorder()
{
alert('failed');
}
答案 0 :(得分:0)
让我们首先不要通过互联网以明文形式发送您的用户名和密码。 Tastypie具有API密钥身份验证机制,允许您使用用户和API密钥登录(无密码)。有一种方法可以为新用户自动创建API密钥,我相信有一个管理命令可以为现有用户创建密钥。
至于Ajax调用。将用户名和密钥作为参数传递到url中或使用授权标头。对于后一种选择,您可以使用:
beforeSend: function (xhr) {
xhr.setRequestHeader ("Authorization", "Authorization: ApiKey <username>:<api_key>");
},
混合:https://stackoverflow.com/a/5507289和How do I set the authorization header for tastypie?