diff --git a/src/Umbraco.Web.UI.Client/src/common/interceptors/_module.js b/src/Umbraco.Web.UI.Client/src/common/interceptors/_module.js index 69a4fe35c9..6b2d993fd5 100644 --- a/src/Umbraco.Web.UI.Client/src/common/interceptors/_module.js +++ b/src/Umbraco.Web.UI.Client/src/common/interceptors/_module.js @@ -6,6 +6,7 @@ angular.module('umbraco.interceptors', []) $httpProvider.interceptors.push('securityInterceptor'); $httpProvider.interceptors.push('debugRequestInterceptor'); + $httpProvider.interceptors.push('requiredHeadersInterceptor'); $httpProvider.interceptors.push('doNotPostDollarVariablesOnPostRequestInterceptor'); $httpProvider.interceptors.push('cultureRequestInterceptor'); diff --git a/src/Umbraco.Web.UI.Client/src/common/interceptors/requiredheaders.interceptor.js b/src/Umbraco.Web.UI.Client/src/common/interceptors/requiredheaders.interceptor.js new file mode 100644 index 0000000000..3d96b86acd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/common/interceptors/requiredheaders.interceptor.js @@ -0,0 +1,28 @@ +(function () { + 'use strict'; + + /** + * Used to set required headers on all requests where necessary + * @param {any} $q + * @param {any} urlHelper + */ + function requiredHeadersInterceptor($q, urlHelper) { + return { + //dealing with requests: + 'request': function (config) { + + // This is a standard header that should be sent for all ajax requests and is required for + // how the server handles auth rejections, etc... see + // https://github.com/aspnet/AspNetKatana/blob/e2b18ec84ceab7ffa29d80d89429c9988ab40144/src/Microsoft.Owin.Security.Cookies/Provider/DefaultBehavior.cs + // https://brockallen.com/2013/10/27/using-cookie-authentication-middleware-with-web-api-and-401-response-codes/ + config.headers["X-Requested-With"] = "XMLHttpRequest"; + + return config; + } + }; + } + + angular.module('umbraco.interceptors').factory('requiredHeadersInterceptor', requiredHeadersInterceptor); + + +})(); diff --git a/src/Umbraco.Web.UI.Client/src/common/services/user.service.js b/src/Umbraco.Web.UI.Client/src/common/services/user.service.js index 413c7e81e5..3e8975eb0c 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/user.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/user.service.js @@ -241,9 +241,9 @@ angular.module('umbraco.services') setCurrentUser(data); deferred.resolve(currentUser); - }, function () { + }, function (err) { //it failed, so they are not logged in - deferred.reject(); + deferred.reject(err); }); return deferred.promise; @@ -266,9 +266,9 @@ angular.module('umbraco.services') setCurrentUser(data); return $q.when(currentUser); - }, function () { + }, function (err) { //it failed, so they are not logged in - return $q.reject(currentUser); + return $q.reject(err); }); }