如何隐藏来自firebug控制台的ajax请求?

时间:2011-11-22 07:22:35

标签: ajax browser firebug

如何隐藏来自firebug控制台或显示ajax调用的任何内容的ajax请求?

7 个答案:

答案 0 :(得分:11)

请在ajax成功或失败后调用此函数:

$('.result').load('testtemplateboth/testpagetpl');
clearconsole();

function clearconsole() { 
  console.log(window.console);
  if(window.console || window.console.firebug) {
   console.clear();
  }
}

OR

$('.log').ajaxComplete(function() { 
  clearconsole();
  $(this).text('Triggered ajaxComplete handler.');
});

function clearconsole() { 
  console.log(window.console);
  if(window.console || window.console.firebug) {
   console.clear();
  }
}

答案 1 :(得分:8)

如此处所述(https://getfirebug.com/wiki/index.php/Console_Panel),您可以在about:config选项卡中设置它,更改extensions.firebug.showXMLHttpRequests值。

答案 2 :(得分:7)

拨打JSONP电话。 JSONP调用不是真正的ajax请求(因为它们不使用XMLHttpRequest对象,它们只是将一个脚本标记注入到DOM中)。但它们不会出现在Firebug中。

答案 3 :(得分:5)

使用二进制websocket。

虽然有些浏览器仍然允许用户检查'在某些情况下,websocket数据包的内容通常仅限于纯文本的websockets,二进制数据要困难得多......而且绝对不会出现在控制台中。

这是Livereload(http://livereload.com/)用来避免使用ajax请求向控制台发送垃圾邮件的方法,这些请求使得使用控制台进行真正的调试有意义。

显然,由于此帖子中的其他帖子已经声明您无法阻止某人使用Wireshark等工具实际捕获请求;但可以说,二进制Web套接字会阻止90%的标准ajax请求可能会产生的随意篡改。

答案 4 :(得分:3)

我尝试过jQuery,但它总是使用普通的ajax调用。根据文档:请求" JSONP"或者"脚本" dataType和" GET"类型应该结果"脚本"运输方式。它的工作原理如下:

客户端

var h = $('head')[0];
var e = document.createElement('SCRIPT');
e.src = "/c.php?getRefresh=1"+("&_="+(+new Date()));
e.onload = function(){
    //script from server executed       
    h.removeChild(e);
}
h.appendChild(e);   

服务器端

if(isset($_GET['getRefresh'])){
    header("Content-Type: text/javascript");
    die("console.log('OK');");
}

答案 5 :(得分:1)

我认为你不能完全隐藏任何嗅探软件的呼叫,因为一些嗅探软件包工作在一个非常低的水平(这么低,你实际上无法从浏览器/代码到达那里)

如果你想掩盖一个电话(例如隐藏呼叫所在的地方),你可以将它发送到你自己的服务器,然后服务器可以自己进行呼叫(使用一些屏蔽命令)。

与调用http://myserver.com/doCommand?command=cmd1&parameter1=param1&parameter2=param2

一样

服务器可以具有读取命令和参数的逻辑,执行它们然后报告结果。无论如何,客户端(浏览器)和服务器之间的呼叫都可以被嗅探软件捕获。

它很像代理。客户端可以看到代理的内容,但不知道接下来会发生什么。

无论如何,在您从调用者而不是外部世界屏蔽调用之后,感觉有点像架构本身有问题。

答案 6 :(得分:0)

与Saeed对JSONP所说的类似,您可以更改图像/文件/脚本“src”属性的来源。服务器将在更改时发送请求,从而可以与服务器通信。我没有试过这个,但我正在考虑为自己实现它。