Legend:
- Unmodified
- Added
- Removed
-
imaps-frontend/node_modules/axios/lib/helpers/isURLSameOrigin.js
rd565449 r0c6b92a 1 'use strict';2 3 import utils from './../utils.js';4 1 import platform from '../platform/index.js'; 5 2 6 export default platform.hasStandardBrowserEnv ? 3 export default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => { 4 url = new URL(url, platform.origin); 7 5 8 // Standard browser envs have full support of the APIs needed to test 9 // whether the request URL is of the same origin as current location. 10 (function standardBrowserEnv() { 11 const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent); 12 const urlParsingNode = document.createElement('a'); 13 let originURL; 14 15 /** 16 * Parse a URL to discover its components 17 * 18 * @param {String} url The URL to be parsed 19 * @returns {Object} 20 */ 21 function resolveURL(url) { 22 let href = url; 23 24 if (msie) { 25 // IE needs attribute set twice to normalize properties 26 urlParsingNode.setAttribute('href', href); 27 href = urlParsingNode.href; 28 } 29 30 urlParsingNode.setAttribute('href', href); 31 32 // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils 33 return { 34 href: urlParsingNode.href, 35 protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', 36 host: urlParsingNode.host, 37 search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', 38 hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', 39 hostname: urlParsingNode.hostname, 40 port: urlParsingNode.port, 41 pathname: (urlParsingNode.pathname.charAt(0) === '/') ? 42 urlParsingNode.pathname : 43 '/' + urlParsingNode.pathname 44 }; 45 } 46 47 originURL = resolveURL(window.location.href); 48 49 /** 50 * Determine if a URL shares the same origin as the current location 51 * 52 * @param {String} requestURL The URL to test 53 * @returns {boolean} True if URL shares the same origin, otherwise false 54 */ 55 return function isURLSameOrigin(requestURL) { 56 const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; 57 return (parsed.protocol === originURL.protocol && 58 parsed.host === originURL.host); 59 }; 60 })() : 61 62 // Non standard browser envs (web workers, react-native) lack needed support. 63 (function nonStandardBrowserEnv() { 64 return function isURLSameOrigin() { 65 return true; 66 }; 67 })(); 6 return ( 7 origin.protocol === url.protocol && 8 origin.host === url.host && 9 (isMSIE || origin.port === url.port) 10 ); 11 })( 12 new URL(platform.origin), 13 platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent) 14 ) : () => true;
Note:
See TracChangeset
for help on using the changeset viewer.