【问题标题】:CSRF Token is not set..How to set CSRF cookie in Typescript?CSRF Token is not set..如何在 Typescript 中设置 CSRF cookie?
【发布时间】:2017-12-07 01:45:37
【问题描述】:

作为标题我不知道如何在我的打字稿文件中设置 CSRF 令牌,我是打字稿和 CSRF 令牌的初学者。

这是我用来发布信息的打字稿文件。

getUsers2() {

    let headers = new Headers();
    headers.append('Content-Type', 'application/json');
    let body2 = {
      site: this.selectedSite,
      zone: this.selectedZone,
      user: this.username,
      categoryType: this.problemType,
      ser: 'High',
      conNo:'012-8888888'
    };

    this.http.post('http://localhost:8000/apidb/report/', JSON.stringify(body2), {headers: headers})
        .map(res => res.json())
        .subscribe(data => {
            console.log("herererererere" ,data);
        });


    this.restProvider.getUsers2().then(data2 => {
      this.locations = data2;
      console.log(this.locations);
    });
  }

在我的 setting.py 中,我已经安装了中间件

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'corsheaders.middleware.CorsMiddleware',
]

在我的views.py中我不确定这是否正确

def report(request):
    import pdb; pdb.set_trace() 
    if request.method == 'POST':
        z1= site(country_site="New Penang Site")
        site.save()
    else:
        return HttpResponse(request.method, content_type="application/json")

当我将数据发布到我的 API 时,它显示 CSRF 未设置..

任何人都可以为我提供有关此问题的任何教程或指南吗?谢谢!!

【问题讨论】:

    标签: python json typescript django-csrf


    【解决方案1】:

    您必须将 CSRF 令牌附加到在 HTTPrequest 中发送的 POSTdata(在本例中是您的 body2 var)。您必须检查 Django 文档以了解他们在 POST 中寻找的名称(在 Laravel 中,它的“_token”)。

    此 POST var 的值将通过在页面顶部回显令牌服务器端来设置(即 var x =(CSRF 令牌的服务器端回显);)

    【讨论】:

    • POST var 应该放在我的 typescript 或 views.py 中??
    • 我还是不太清楚你提供的解决方案。你介意解释一下吗?
    猜你喜欢
    • 2019-06-16
    • 2022-01-12
    • 2017-06-25
    • 2015-05-22
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 2017-04-15
    相关资源
    最近更新 更多