diff --git a/src/assets/js/map-util.js b/src/assets/js/map-util.js
index 7b9c606cd682670d038a9f99ec707ea84071f360..2bb0f78e4a4cc104f50751ca06cd87412feaf234 100644
--- a/src/assets/js/map-util.js
+++ b/src/assets/js/map-util.js
@@ -3,6 +3,13 @@ import "leaflet/dist/leaflet.css";
 import flip from '@turf/flip'
 import axios from "axios"
 
+axios.defaults.headers.common['X-CSRFToken'] = (name => {
+  var re = new RegExp(name + "=([^;]+)");
+  var value = re.exec(document.cookie);
+  return (value != null) ? unescape(value[1]) : null;
+})('csrftoken');
+
+
 let map;
 let dictLayersToLeaflet = {};
 
diff --git a/src/services/project-api.js b/src/services/project-api.js
index 14019cb19f74c0b76d568761b5008b4bc24692ae..fd46c39241a72d1928e49af49f081730d497da9c 100644
--- a/src/services/project-api.js
+++ b/src/services/project-api.js
@@ -1,6 +1,14 @@
 import axios from 'axios';
 import store from '../store'
 
+
+axios.defaults.headers.common['X-CSRFToken'] = (name => {
+  var re = new RegExp(name + "=([^;]+)");
+  var value = re.exec(document.cookie);
+  return (value != null) ? unescape(value[1]) : null;
+})('csrftoken');
+
+
 const baseUrl = store.state.configuration.VUE_APP_DJANGO_API_BASE;
 
 const projectAPI = {
diff --git a/src/store/index.js b/src/store/index.js
index ce5d58e6a11272cec3d59b600a3ef15b6c968558..cb00de2006643cd9aeaa14a981a9b12726994edb 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -8,6 +8,12 @@ import feature_type from "./modules/feature_type"
 import feature from "./modules/feature"
 import map from "./modules/map"
 
+axios.defaults.headers.common['X-CSRFToken'] = (name => {
+  var re = new RegExp(name + "=([^;]+)");
+  var value = re.exec(document.cookie);
+  return (value != null) ? unescape(value[1]) : null;
+})('csrftoken');
+
 
 Vue.use(Vuex);
 
diff --git a/src/store/modules/feature.js b/src/store/modules/feature.js
index fd9ee2833a5d85f36bf828c538cf948cb6bff8a2..f6f7f42e364c7e2ba603110d8f9ee261e068074c 100644
--- a/src/store/modules/feature.js
+++ b/src/store/modules/feature.js
@@ -1,6 +1,12 @@
 const axios = require("axios");
 import router from '../../router'
 
+axios.defaults.headers.common['X-CSRFToken'] = (name => {
+  var re = new RegExp(name + "=([^;]+)");
+  var value = re.exec(document.cookie);
+  return (value != null) ? unescape(value[1]) : null;
+})('csrftoken');
+
 
 const feature = {
   namespaced: true,
diff --git a/src/store/modules/feature_type.js b/src/store/modules/feature_type.js
index e8986cb11c20e7c50a568a2a94e4707f7f77193b..f4148c1783d7d4c6ecc97ea7186b0bb418d12296 100644
--- a/src/store/modules/feature_type.js
+++ b/src/store/modules/feature_type.js
@@ -1,5 +1,10 @@
 import axios from "axios"
 
+axios.defaults.headers.common['X-CSRFToken'] = (name => {
+  var re = new RegExp(name + "=([^;]+)");
+  var value = re.exec(document.cookie);
+  return (value != null) ? unescape(value[1]) : null;
+})('csrftoken');
 
 
 const feature_type = {
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
index 207d3ebc9696cd3741160b7165027a6d9d9573c1..f29ef9f4d128729e027c6364005edcad240fce6c 100644
--- a/src/store/modules/map.js
+++ b/src/store/modules/map.js
@@ -1,6 +1,12 @@
 const axios = require("axios");
 import { mapUtil } from "@/assets/js/map-util.js";
 
+axios.defaults.headers.common['X-CSRFToken'] = (name => {
+  var re = new RegExp(name + "=([^;]+)");
+  var value = re.exec(document.cookie);
+  return (value != null) ? unescape(value[1]) : null;
+})('csrftoken');
+
 
 const map = {
   namespaced: true,
diff --git a/src/views/feature/Feature_edit.vue b/src/views/feature/Feature_edit.vue
index c13fb8bfeb046d852fde7a6f9c5d7e4c653b490f..2b60ca875aa7c1750313258fa4296d3ad3cbd172 100644
--- a/src/views/feature/Feature_edit.vue
+++ b/src/views/feature/Feature_edit.vue
@@ -240,6 +240,13 @@ import { mapUtil } from "@/assets/js/map-util.js";
 const axios = require("axios");
 import flip from "@turf/flip";
 
+axios.defaults.headers.common['X-CSRFToken'] = (name => {
+    var re = new RegExp(name + "=([^;]+)");
+    var value = re.exec(document.cookie);
+    return (value != null) ? unescape(value[1]) : null;
+  })('csrftoken');
+
+
 export default {
   name: "Feature_edit",
 
diff --git a/src/views/project/Project_edit.vue b/src/views/project/Project_edit.vue
index 980c4466ae1b23c98de00b13326a4908b01a2c9a..72a6344c09054bf111b1fd2f44b4a4fe9b5e596c 100644
--- a/src/views/project/Project_edit.vue
+++ b/src/views/project/Project_edit.vue
@@ -172,6 +172,13 @@ import Dropdown from "@/components/Dropdown.vue";
 
 import { mapGetters } from "vuex";
 
+axios.defaults.headers.common['X-CSRFToken'] = (name => {
+    var re = new RegExp(name + "=([^;]+)");
+    var value = re.exec(document.cookie);
+    return (value != null) ? unescape(value[1]) : null;
+  })('csrftoken');
+
+
 export default {
   name: "Project_edit",