我在我的app.module中使用在Angular 2中使用X-CSRF-TOKEN的标准方法:
provide: XSRFStrategy, useValue: new CookieXSRFStrategy('CSRF-TOKEN', 'X-CSRF-TOKEN')
我正在使用“primeng”进行文件上传。我需要像我一样自己设置令牌:
private onBeforeSend(event) {
event.xhr.setRequestHeader("X-CSRF-TOKEN", tokenThatINeed);
}
我需要Angular2为我生成的令牌。我不知道如何访问令牌。
答案 0 :(得分:1)
您可以使用以下代码获取令牌
document.cookie
答案 1 :(得分:0)
所以,我有一个类似的问题,并使用第三方JavaScript库来解决问题。有几个不同的,但我使用angular2-cookie。一旦您将服务注入您的组件,它就非常直接。这是我的代码最终看起来像:
import {CookieService} from "angular2-cookie/core";
@Component({
selector: 'fileUpload',
templateUrl: 'app/components/files/fileUpload.html',
providers: [CookieService]
})
export class FileUploadComponent {
uploadUrl:string;
constructor(private propertyService:PropertyService,
private cookieService:CookieService){
this.uploadUrl = propertyService.getProperties().server_location + "/files/upload"
}
onBeforeSend(event:any){
event.xhr.open("POST", this.uploadUrl, true);
event.xhr.setRequestHeader("X-XSRF-TOKEN", this.cookieService.get("XSRF-TOKEN"));
}
}
答案 2 :(得分:0)
像这样使用 HttpXsrfTokenExtractor:
export class MyComponent {
constructor(csrfTokenExtractor: HttpXsrfTokenExtractor) {
console.log(csrfTokenExtractor.getToken());
}
}