我正在使用Django和Django Rest Framework处理REST API。 在前端我有AngularJs应用程序。 我已经为API使用了Token身份验证。这会禁用CSRF检查。
我希望使用REST API保持CSRF验证。怎么做到这一点?
我应该如何获取CSRF令牌值,以便可以使用我的角度应用程序的拦截器将其设置到每个POST请求的标头中。
答案 0 :(得分:0)
我在 app.js 中有此配置。应该做的伎俩!
app.config(function($httpProvider) {
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
$httpProvider.defaults.xsrfCookieName = 'csrftoken';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
});
答案 1 :(得分:0)
当我开始使用Angular 1.x与Django和DRF时,我遇到了同样的问题,然后我在一本书中找到了这个代码片段,我认为它对我来说很好。在任何javascript导入之前,将此文件包含在export class App implements OnInit {
name:string;
data:any = {value: 123345};
constructor() {}
ngOnInit(): void {
this.name = 'Angular2';
}
disableSpace(event: any) {
if (event.charCode && event.charCode === 32 || event.which && event.which === 32) {
event.preventDefault();
}
}
}
文件或主html文件中,一切都将顺利进行,您可以开始与后端通信。
base.html