如何拦截Web请求

 让自己更加成熟一点 发布于 2023-02-06 13:42

chrome.webRequest对于Safari扩展,有没有类似Chromium的东西?我在这里查看了他们的文档.我能找到的最接近的是SafariBeforeNavigateEvent.这将阻止新页面加载,但仍会将请求发送到服务器.此外,我认为它不会在AJAX请求上调用侦听器.有人试过类似的东西?

1 个回答
  • 我们通过使用"xmlhttprequest"覆盖来解决这个问题.

    这是我们的content.js.我们将content.js注入了启动脚本

        $(document).ready(function() {
    
         var myScriptTag = document.createElement('script');
         myScriptTag.src = safari.extension.baseURI + 'js/injectedToPage.js';
         document.body.appendChild(myScriptTag);     
    
        });    
    

    注入的代码是:(injectToPage.js)

    XMLHttpRequest.prototype.reallySend = XMLHttpRequest.prototype.send;
    XMLHttpRequest.prototype.send = function (body) { 
    
            console.log("--req.body:---");
            console.log(body);
    
        this.reallySend(body);
    
    };
    var req = new XMLHttpRequest();
    req.open("GET", "any.html", true);
    req.send(null);
    

    2023-02-06 13:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有