我正在为我的API使用django-rest-framework。为了将数据发布到我的API,用户必须首先使用他的凭据登录。
在命令行发布中看起来像这样:
curl -X POST http://127.0.0.1:8000/snippets/ -d "code=print 789" -u username:password
{"id": 5, "owner": "tom", "title": "foo", "code": "print 789", "linenos": false, "language": "python", "style": "friendly"}
现在,我正在尝试使用angularjs发布数据。这是代码:
$http.post('http://localhost:8000/snippets/', self.newSnippet)
.then(fetchSnippets())
.then(function (response) {
self.newSnippet = {};
})
当然,它不允许我发布这些数据,因为我没有登录。
问题:
如何使用此$ http.post发送用户凭据,就像我在命令行中使用curl一样(-u用户名:密码)?
答案 0 :(得分:0)
如果是HTTP基本身份验证,请在请求之前输入:
encodedCredentials = Base64.encode('username' + ':' + 'password');
$http.defaults.headers.common['Authorization'] = 'Basic ' + encodedCredentials;
您还需要实现Base64
或从某些lib获取它。