UNPKG

node-web-mvc

Version:
46 lines (45 loc) 1.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const HttpHeaders_1 = __importDefault(require("../http/HttpHeaders")); const HttpMethod_1 = __importDefault(require("../http/HttpMethod")); const ApiUtils_1 = require("./ApiUtils"); const isEqual = (value1, value2) => { if (value1 === undefined || value1 === null || value2 === undefined || value2 === null) { return false; } return value1 === value2; }; exports.default = { /** * 判断当前请求是否为跨域请求 * @param request * @returns */ isCrossRequest(request) { var _a; const origin = (_a = request.getHeaderValue(HttpHeaders_1.default.ORIGIN)) === null || _a === void 0 ? void 0 : _a[0]; if ((0, ApiUtils_1.isEmpty)(origin)) { return false; } const uRL = new URL(origin, `xx://127.0.0.0`); const isSameOrigin = ( // 协议相等 isEqual(request.protocol, uRL.protocol.replace(':', '')) && // 域名相等 isEqual(request.host, uRL.hostname) && // 端口相等 isEqual(request.port, uRL.port)); return !isSameOrigin; }, /** * 判断当前是否为预请求 */ isPreFlightRequest(request) { return (request.method == HttpMethod_1.default.OPTIONS && !!request.getHeader(HttpHeaders_1.default.ORIGIN) && !!request.getHeader(HttpHeaders_1.default.ACCESS_CONTROL_REQUEST_METHOD)); }, };