【发布时间】:2017-04-13 16:22:11
【问题描述】:
我正在开发一个 Angular Web 应用程序,它将取代我们现有的网站。当前网站使用基于会话的身份验证。目前,我无法通过 get 或 post 请求访问托管 API。
我正在使用 python 简单服务器在本地计算机上开发 angular 应用程序,而 api 是在线托管的。
我希望找到一个完全有角度的修复程序,因为我无法在没有帮助的情况下更改 API(它是我的老板前段时间编写的,现在用于生产版本)。我没有登录页面,所以我只是想在我的标头和请求中提供身份验证信息。
我的 Angular 应用程序是独立于 django 编写的。我只想访问 django 后端
到目前为止,我正在尝试以下设置标题:
app.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.xsrfCookieName = 'csrftoken';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
$httpProvider.defaults.headers.common = {'username': btoa('myUsername'), 'password': btoa('myPassword')
};
}]);
在我的服务中:
app.factory('Test', ['$resource', function($resource) {
return $resource('https://www.phonywebsite.org/en/api/test/')
};
我总是遇到 301、400 和 403 错误。最近主要是 301 错误,我没有从 api 得到响应。我正在使用允许 CORS chrome 扩展作为临时修复,以尝试访问 api 而不会出现 CORS 策略错误。
我的问题
如何在不使用 chrome 扩展程序的情况下修复 CORS 错误?
如何向使用基于会话的身份验证的 django 后端提供身份验证,以确保其查找的 csrf cookie 位于标头中?
【问题讨论】:
标签: angularjs cookies cors csrf django-rest-auth