ej2 DataManager with Rails
Recently I used syncfusion’s ej2 calendar in a small Rails project and ran into a few problems because Rails is tough on security.
The UrlAdaptor that comes with ej2-data needs to send our beloved csrf-token with all POST requests and this is the way I implemented it:
class UrlAdaptorWithCredentials extends UrlAdaptor {
beforeSend(args: DataManager, xhr: XMLHttpRequest) {
xhr.withCredentials = true;
var token = document.querySelector('meta[name="csrf-token"]').content
xhr.setRequestHeader('X-CSRF-Token', token)
super.beforeSend(args, xhr);
}
}
data = new DataManager({
url: '/calendar',
crossDomain: true,
adaptor: new UrlAdaptorWithCredentials()
});
Lastly a general advice on fetch: With rails you’ll need to send the cookie for GET requests and you can do this by adding {credentials: "include"} in the options.
fetch('/calendar', {credentials: "include"})
