Aerfaying-Hook

A hook for aerfaying

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Aerfaying-Hook
// @namespace    https://mikoto.net.cn
// @version      1.0.0
// @description  A hook for aerfaying
// @author       Mikoto https://mikoto.net.cn
// @match        *://aerfaying.com/*
// @icon         https://mikoto.net.cn/favicon.ico
// @grant        none
// @license      AGPLv3
// ==/UserScript==
let hookXhrOpen = XMLHttpRequest.prototype.open;
let hookXhrSrh = XMLHttpRequest.prototype.setRequestHeader;

XMLHttpRequest.prototype.open = function(method, url, syn) {
    if (url == "/WebApi/Projects/CloudSpace") {
        url = "http://127.0.0.1:8080/api/hook";
        method = "POST";
        syn = true;
        console.log(method);
        console.log(url);
    }
    hookXhrOpen.apply(this, [method, url, syn]);
}

XMLHttpRequest.prototype.setRequestHeader = function(header, value) {
    if (header == "Origin" && value == "https://aerfaying.com") {
        hookXhrSrh.apply(this, [header, "http://127.0.0.1"])
    }
}