node-web-mvc
Version:
node spring mvc
46 lines (45 loc) • 1.65 kB
JavaScript
;
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));
},
};