如何,我可以通过ajax访问tastypie验证webservice

时间:2014-10-27 10:01:45

标签: javascript jquery ajax django tastypie

我试图通过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');
 }

1 个答案:

答案 0 :(得分:0)

让我们首先不要通过互联网以明文形式发送您的用户名和密码。 Tastypie具有API密钥身份验证机制,允许您使用用户和API密钥登录(无密码)。有一种方法可以为新用户自动创建API密钥,我相信有一个管理命令可以为现有用户创建密钥。

至于Ajax调用。将用户名和密钥作为参数传递到url中或使用授权标头。对于后一种选择,您可以使用:

beforeSend: function (xhr) {
    xhr.setRequestHeader ("Authorization", "Authorization: ApiKey <username>:<api_key>");

},

混合:https://stackoverflow.com/a/5507289How do I set the authorization header for tastypie?