diff options
| author | Misko Hevery | 2012-05-03 14:52:26 -0700 |
|---|---|---|
| committer | Misko Hevery | 2012-05-04 15:50:39 -0700 |
| commit | d0159454dfa2e1cee4dd4ab7a41c2fcf9e121a64 (patch) | |
| tree | 053d7cdd1e0501a28ce0cb30992aa4a2e7cdf15f /src | |
| parent | 7f0eb1516165fcb73f1c9953018b7c9b70acfae1 (diff) | |
| download | angular.js-d0159454dfa2e1cee4dd4ab7a41c2fcf9e121a64.tar.bz2 | |
bug($cookie): set on app base path rather the current path.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ng/browser.js | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/src/ng/browser.js b/src/ng/browser.js index fe14a3d7..9dce89db 100644 --- a/src/ng/browser.js +++ b/src/ng/browser.js @@ -17,12 +17,11 @@ /** * @param {object} window The global window object. * @param {object} document jQuery wrapped document. - * @param {object} body jQuery wrapped document.body. * @param {function()} XHR XMLHttpRequest constructor. * @param {object} $log console.log or an object with the same interface. * @param {object} $sniffer $sniffer service */ -function Browser(window, document, body, $log, $sniffer) { +function Browser(window, document, $log, $sniffer) { var self = this, rawDocument = document[0], location = window.location, @@ -222,10 +221,26 @@ function Browser(window, document, body, $log, $sniffer) { }; ////////////////////////////////////////////////////////////// + // Misc API + ////////////////////////////////////////////////////////////// + + /** + * Returns current <base href> + * (always relative - without domain) + * + * @returns {string=} + */ + self.baseHref = function() { + var href = document.find('base').attr('href'); + return href ? href.replace(/^https?\:\/\/[^\/]*/, '') : href; + }; + + ////////////////////////////////////////////////////////////// // Cookies API ////////////////////////////////////////////////////////////// var lastCookies = {}; var lastCookieString = ''; + var cookiePath = self.baseHref(); /** * @ngdoc method @@ -253,12 +268,10 @@ function Browser(window, document, body, $log, $sniffer) { if (name) { if (value === undefined) { - rawDocument.cookie = escape(name) + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT"; + rawDocument.cookie = escape(name) + "=;path=" + cookiePath + ";expires=Thu, 01 Jan 1970 00:00:00 GMT"; } else { if (isString(value)) { - rawDocument.cookie = escape(name) + '=' + escape(value); - - cookieLength = name.length + value.length + 1; + cookieLength = (rawDocument.cookie = escape(name) + '=' + escape(value) + ';path=' + cookiePath).length + 1; if (cookieLength > 4096) { $log.warn("Cookie '"+ name +"' possibly not set or overflowed because it was too large ("+ cookieLength + " > 4096 bytes)!"); @@ -338,26 +351,11 @@ function Browser(window, document, body, $log, $sniffer) { return false; }; - - ////////////////////////////////////////////////////////////// - // Misc API - ////////////////////////////////////////////////////////////// - - /** - * Returns current <base href> - * (always relative - without domain) - * - * @returns {string=} - */ - self.baseHref = function() { - var href = document.find('base').attr('href'); - return href ? href.replace(/^https?\:\/\/[^\/]*/, '') : href; - }; } function $BrowserProvider(){ this.$get = ['$window', '$log', '$sniffer', '$document', function( $window, $log, $sniffer, $document){ - return new Browser($window, $document, $document.find('body'), $log, $sniffer); + return new Browser($window, $document, $log, $sniffer); }]; } |
