上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

ajaxHook庫修改fetch x-forwarded-for

[复制链接]
  • TA的每日心情
    开心
    2024-5-26 17:34
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    2

    回帖

    5

    积分

    助理工程师

    积分
    5
    发表于 2024-5-13 07:43:57 | 显示全部楼层 | 阅读模式
    悬赏20油猫币已解决

    以下是我如何使用的方式 我ajaxHook之后 发现页面上的fetch都能劫持到 但是我自己写的fetch会劫持不到
    并且我想用这个劫持去修改 header x-forwarded-for

    // ==UserScript==
    // @name         DXXXX
    // @namespace    http://tampermonkey.net/
    // @version      2.0.21
    // @description
    // @grant        GM_getValue
    // @grant        GM_setValue
    // @require https://scriptcat.org/lib/637/1.4.0/ajaxHooker.js#sha256=2yxSlbNRgvhzRczZ32IEACTSHFaqFtO6VtLu769ZBdM=
    // @grant        GM_xmlhttpRequest
    // @run-at document-start
    // ==/UserScript==
    (function() {
        'use strict';
            ajaxHooker.hook(request => {
            request.response = res => {
                const responseText = res.responseText; // 注意保存原数据
                console.log(responseText);
            };
        });
    fetch(`https://www.example.com`, {
                    headers: {
                        "accept": "*/*",
                        "accept-language": "zh-TW,zh;q=0.9,en-US;q=0.8,en;q=0.7",
                        "cache-control": "max-age=0",
                        "content-type": "application/x-www-form-urlencoded",
                        "if-modified-since": "0"
                    },
                    referrer: "https://www.example.com",
                    referrerPolicy: "strict-origin-when-cross-origin",
                    method: "POST",
                    mode: "cors",
                    credentials: "include"
                }).then(response => {
                    if (!response.ok) {
                        throw new Error('Network response was not ok.');
                    }
                    return response.text();
                }).then(data => {
                }).catch(error => {
                });
    })();

    最佳答案

    查看完整内容

    const win = window.unsafeWindow || document.defaultView || window; win.fetch = winAh.fakeFetch; 默认应该只尝试读取到了window.unsafeWindow上 可以直接调用unsafeWindow.fetch发送数据
  • TA的每日心情
    慵懒
    4 天前
  • 签到天数: 193 天

    [LV.7]常住居民III

    710

    主题

    5881

    回帖

    6704

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6704

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2024-5-13 07:43:58 | 显示全部楼层
    const win = window.unsafeWindow || document.defaultView || window;
    win.fetch = winAh.fakeFetch;

    默认应该只尝试读取到了window.unsafeWindow上
    可以直接调用unsafeWindow.fetch发送数据
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-5-26 17:34
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    2

    回帖

    5

    积分

    助理工程师

    积分
    5
    发表于 2024-5-13 11:25:59 | 显示全部楼层
    李恒道 发表于 2024-5-13 07:43
    const win = window.unsafeWindow || document.defaultView || window;
    win.fetch = winAh.fakeFetch;

    可以了 谢谢李哥
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表