ttk-component
Version:
- 1、npm install ttk-component --save
81 lines (75 loc) • 2.87 kB
JavaScript
import {SuperFetch} from '../SuperFetch';
export var Util = SuperFetch.Util = SuperFetch.Util || {};
/**
* @description 判断一个对象是否是数组。
* @param a - {Object} 对象。
* @return {boolean} 是否是数组。
*/
SuperFetch.Util.isArray = function (a) {
return (Object.prototype.toString.call(a) === '[object Array]');
};
/**
* @description 给url追加参数。
* @param url - {string} 待追加参数的url字符串。
* @param paramStr - {string} 待追加的参数。
* @return {string} The new url
*/
SuperFetch.Util.urlAppend = function (url, paramStr) {
var newUrl = url;
if (paramStr) {
var parts = (url + " ").split(/[?&]/);
newUrl += (parts.pop() === " " ?
paramStr :
parts.length ? "&" + paramStr : "?" + paramStr);
}
return newUrl;
};
/**
* @description 判断一个 URL 请求是否在当前域中。
* @param url - {string} URL 请求字符串。
* @return {boolean} URL请求是否在当前域中。
*/
SuperFetch.Util.isInTheSameDomain = function (url) {
if (!url) {
return true;
}
var index = url.indexOf("//");
var documentUrl = document.location.toString();
var documentIndex = documentUrl.indexOf("//");
if (index === -1) {
return true;
} else {
var protocol;
var substring = protocol = url.substring(0, index);
var documentSubString = documentUrl.substring(documentIndex + 2);
documentIndex = documentSubString.indexOf("/");
var documentPortIndex = documentSubString.indexOf(":");
var documentDomainWithPort = documentSubString.substring(0, documentIndex);
//var documentPort;
var documentprotocol = document.location.protocol;
if (documentPortIndex !== -1) {
// documentPort = +documentSubString.substring(documentPortIndex, documentIndex);
} else {
documentDomainWithPort += ':' + (documentprotocol.toLowerCase() === 'http:' ? 80 : 443);
}
if (documentprotocol.toLowerCase() !== substring.toLowerCase()) {
return false;
}
substring = url.substring(index + 2);
var portIndex = substring.indexOf(":");
index = substring.indexOf("/");
var domainWithPort = substring.substring(0, index);
var domain;
if (portIndex !== -1) {
domain = substring.substring(0, portIndex);
} else {
domain = substring.substring(0, index);
domainWithPort += ':' + (protocol.toLowerCase() === 'http:' ? 80 : 443);
}
var documentDomain = document.domain;
if (domain === documentDomain && domainWithPort === documentDomainWithPort) {
return true;
}
}
return false;
};