Skip to content

Instantly share code, notes, and snippets.

@bruno2ms
Forked from marteinn/info.md
Created July 25, 2018 11:38
Show Gist options
  • Save bruno2ms/b6a560c4cc1ae851684f6ef6238694a4 to your computer and use it in GitHub Desktop.
Save bruno2ms/b6a560c4cc1ae851684f6ef6238694a4 to your computer and use it in GitHub Desktop.
Using the Fetch Api with Django Rest Framework

Using the Fetch Api with Django Rest Framework

Server

First, make sure you use the SessionAuthentication in Django. Put this in your settings.py

# Django rest framework
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.SessionAuthentication'
    ]
}

Client

Then start with including the getCookie method from the Django Docs.

Finally use the fetch method to call your endpoint.

var myData = {
    hello: 1
};

fetch("/api/v1/endpoint/5/", {
    method: "put",
    credentials: "same-origin",
    headers: {
        "X-CSRFToken": getCookie("csrftoken"),
        "Accept": "application/json",
        "Content-Type": "application/json"
    },
    body: JSON.stringify(myData)
}).then(function(response) {
    return response.json();
}).then(function(data) {
    console.log("Data is ok", data);
}).catch(function(ex) {
    console.log("parsing failed", ex);
});

Easy! (Remember this will currently only work on Chrome and Firefox)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment