From 852641335da2b6158283c6bdf44591fe0c8ba3f5 Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Sat, 16 Mar 2013 17:24:43 +0530 Subject: [PATCH] add Ox.Cookie, send X-CSRFToken if csrftoken cookie is set --- source/Ox.UI/js/Core/Cookies.js | 20 ++++++++++++++++++++ source/Ox.UI/js/Core/Request.js | 6 ++++++ 2 files changed, 26 insertions(+) create mode 100644 source/Ox.UI/js/Core/Cookies.js diff --git a/source/Ox.UI/js/Core/Cookies.js b/source/Ox.UI/js/Core/Cookies.js new file mode 100644 index 00000000..a29e374b --- /dev/null +++ b/source/Ox.UI/js/Core/Cookies.js @@ -0,0 +1,20 @@ +Ox.Cookies = function() { + var name, value, cookies; + if (arguments.length == 1) { + name = arguments[0]; + return Ox.Cookies()[name]; + } else if (arguments.length == 2) { + name = arguments[0]; + value = arguments[1]; + document.cookie = name + '=' + encodeURIComponent(value); + } else { + value = {} + if (document.cookie && document.cookie != '') { + document.cookie.split('; ').forEach(function(cookie) { + name = cookie.split('=')[0]; + value[name] = decodeURIComponent(cookie.substring(name.length + 1)); + }); + } + return value; + } +} diff --git a/source/Ox.UI/js/Core/Request.js b/source/Ox.UI/js/Core/Request.js index fc91c449..02eced0f 100644 --- a/source/Ox.UI/js/Core/Request.js +++ b/source/Ox.UI/js/Core/Request.js @@ -136,6 +136,12 @@ Ox.Request = (function() { } else { pending[options.id] = true; $.ajax({ + beforeSend: function (request) { + var csrftoken = Ox.Cookies('csrftoken'); + if (csrftoken) { + request.setRequestHeader("X-CSRFToken", csrftoken); + } + }, complete: complete, data: options.data, //dataType: 'json',