HTTP Request Sniffer

log http requests made with javascript in the console.

  1. // ==UserScript==
  2. // @name HTTP Request Sniffer
  3. // @namespace HTTP Request Sniffer
  4. // @version 1.0
  5. // @description log http requests made with javascript in the console.
  6. // @author Turtle ? Clan
  7. // @license GPL
  8. // @match *://*/*
  9. // @grant none
  10. // @run-at document-start
  11. // ==/UserScript==
  12. var createElement = function(tag, attributes, value) {
  13. var element = document.createElement(tag);
  14. element.innerText = value || '';
  15. for ( var i = 0; attributes && i < attributes.length; i += 2 ) {
  16. element.setAttribute(attributes[i], attributes[i + 1]);
  17. }
  18. return element;
  19. };
  20.  
  21. var injectScript = function(element, callback) {
  22. var script = createElement('script', ['type', 'text/javascript'], '(' + String(callback) + '())');
  23. element.appendChild(script);
  24. };
  25.  
  26. var requestSniffer = function() {
  27. var self = {};
  28. self.request = {};
  29. self.open = XMLHttpRequest.prototype.open;
  30. self.send = XMLHttpRequest.prototype.send;
  31. self.header = XMLHttpRequest.prototype.setRequestHeader;
  32. XMLHttpRequest.prototype.open = function() {
  33. self.request = {};
  34. self.request.method = arguments['0'];
  35. self.request.url = arguments['1'];
  36. self.request.headers = [];
  37. self.open.apply(this, arguments);
  38. };
  39. XMLHttpRequest.prototype.setRequestHeader = function() {
  40. self.request.headers.push(arguments['0']);
  41. self.request.headers.push(arguments['1']);
  42. self.header.apply(this, arguments);
  43. };
  44. XMLHttpRequest.prototype.send = function() {
  45. self.request.post = arguments['0'] || false;
  46. self.send.apply(this, arguments);
  47. console.log(self.request);
  48. };
  49. };
  50.  
  51. injectScript(document.body || document.head || document.documentElement, requestSniffer);

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址