This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/initializers/csrf-token.js
2020-03-12 13:29:55 -04:00

29 lines
677 B
JavaScript

// Append our CSRF token to AJAX requests when necessary.
let installed = false;
let callbacks = $.Callbacks();
export default {
name: "csrf-token",
initialize(container) {
// Add a CSRF token to all AJAX requests
let session = container.lookup("session:main");
session.set("csrfToken", $("meta[name=csrf-token]").attr("content"));
if (!installed) {
$.ajaxPrefilter(callbacks.fire);
installed = true;
}
callbacks.add(function(options, originalOptions, xhr) {
if (!options.crossDomain) {
xhr.setRequestHeader("X-CSRF-Token", session.get("csrfToken"));
}
});
},
teardown() {
callbacks.empty();
}
};