简体   繁体   English

如何在 Django (CSRF-Token) 中使用 Javscript 发出 POST 请求?

[英]How can I make a POST-request using Javscript in Django (CSRF-Token)?

This question has been asked before, but those solutions didn't work for me that well:之前有人问过这个问题,但这些解决方案对我来说并不那么好:

Fetch, set-cookies and csrf 获取、设置 cookie 和 csrf

Proper Django CSRF validation using fetch post request 使用获取发布请求进行正确的 Django CSRF 验证

Right now the content of my post request is correct and being, but the 403 error still shows up.现在我的帖子请求的内容是正确的并且是正确的,但是仍然出现 403 错误。

        const url = "/post/create"
        let csrftoken = Cookies.get('csrftoken'); //using library


        const headers = new Headers({
                'X-CSRF-TOKEN': csrftoken
            });
            return fetch(url, {
                method: 'POST',
                headers,
                credentials: 'same-origin',
                mode: 'same-origin',
                body: JSON.stringify({
                    content: content
                })
            });

Do you have any ideas?你有什么想法?

EDIT: This is the solution I found编辑:这是我找到的解决方案

        fetch(url, {
            method: 'POST',
            mode: "same-origin",
            headers: {
                "X-CSRFToken": csrftoken,
                "Accept": "network/json",
                "Content-Type": "network/json",
            },
            body: JSON.stringify({
                content: content
            })

It should be X-CSRFToken not X-CSRF-TOKEN .它应该是X-CSRFToken而不是X-CSRF-TOKEN See more here . 在这里查看更多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 React js - Laravel 5:在 POST 方法中使用 csrf-token - React js - Laravel 5: Using csrf-token in POST method 如何在vanilla Javascript中执行`$('meta [name =“csrf-token”]')。attr('content')` - How can I do `$('meta[name=“csrf-token”]').attr('content')` in vanilla Javascript? 如何将 Laravel CSRF 令牌传递给 Service Worker,以便我可以发出 POST 请求? - How to pass Laravel CSRF token to Service Worker so i can make a POST request? 如何使用 jquery 发出 POST 请求并在 django 视图(非通用视图)中访问 POST 数据,而不使用 csrf 令牌? - How to make a POST request using jquery and access POST data in a django view (not generic views), without using csrf token? 如何在css中添加csrf令牌 - how to add csrf-token to form in js 如何将Django的CSRF令牌添加到jQuery POST请求的标头中? - How to add Django's CSRF token to the header of a jQuery POST request? 尽管我在表单中有 csrf 令牌,但在 Django POST 请求中,禁止的 CSRF 令牌丢失或不正确 - Forbidden CSRF token missing or incorrect in Django POST request even though I have csrf token in form 我如何将 csrf_token 包含到 dropzone Post 请求(Django) - How do i include the csrf_token to dropzone Post request (Django) django 使用经典的 javascript 将 AJAx POST 请求发送到带有 csrf_token 的服务器,如何? - django sending AJAx POST request using classical javascript into server with csrf_token, how to? Axios 发送双 CSRF-Token [CSRF-Token mismatch] - Axios sending double CSRF-Token [CSRF-Token mismatch]
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM