如何隐藏来自firebug控制台或显示ajax调用的任何内容的ajax请求?
答案 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¶meter1=param1¶meter2=param2
一样服务器可以具有读取命令和参数的逻辑,执行它们然后报告结果。无论如何,客户端(浏览器)和服务器之间的呼叫都可以被嗅探软件捕获。
它很像代理。客户端可以看到代理的内容,但不知道接下来会发生什么。
无论如何,在您从调用者而不是外部世界屏蔽调用之后,感觉有点像架构本身有问题。
答案 6 :(得分:0)
与Saeed对JSONP所说的类似,您可以更改图像/文件/脚本“src”属性的来源。服务器将在更改时发送请求,从而可以与服务器通信。我没有试过这个,但我正在考虑为自己实现它。