AJAX自动刷新div而不包含?

时间:2013-06-15 07:18:15

标签: php javascript jquery

我的网站上需要一个div来每两分钟左右自动刷新一次,我发现这段代码有效。

<script>
var auto_refresh = setInterval(
function()
{
$('#mydiv').load('urltocontent.php').fadeIn("slow");
}, 10000);
</script>

然后我只有一个<div id="mydiv"></div>

虽然这很好用,但我想知道我是否可以隐藏文件位置所在的位置?我不希望人们能够访问urltocontent.php,当他们查看我的来源时可以看到它。

有没有办法只刷新div? (不必在里面添加load('urltocontent.php')。)。

希望很快收到你的来信!谢谢!


嘿伙计们!感谢您的快速回复!我为我的愚蠢问题道歉......

我尝试过Kiren Siva的方法,它阻止用户直接访问该网站,但现在我的第一次加载会显示“错误请求”。

我希望我能隐藏它的主要原因是它会更“专业”。因为它链接到我的一个模板文件夹,并且我的网站的其他部分存储在该文件夹中。我也不希望好奇的人访问那个页面,并被一个丑陋的无法访问的页面打招呼。

6 个答案:

答案 0 :(得分:2)

除非我误解了这个问题,否则就无法隐藏。即使您找到了在源代码中隐藏它的方法,任何人都可以打开Chrome的开发人员工具或Firebug并查看对服务器的请求。

浏览器知道的任何内容,用户都可以找到他们是否想要并拥有合适的工具。

答案 1 :(得分:1)

如果浏览器能够访问它,则该URL不能是可停止的。

如果您想要更安全和受保护,那么您只能使用身份验证+授权。所以只有登录的用户才能访问它.URL限制不是一个好习惯。有人通过以下方式访问它但是,只需正确的身份验证即可为您节省

How to use Basic Auth with jQuery and AJAX?

答案 2 :(得分:0)

由于Ajax函数需要调用页面,因此无法隐藏它。

如果您想要隐藏该特定页面,您可以做的是从Ajax调用虚拟页面,然后调用实际页面。

例如,使用Ajax调用中的index.php并从index.php执行位于urltocontent.php(如果有)的函数。或者将请求从index.php转发到该页面。

答案 3 :(得分:0)

如果您显示网址,任何人都可以明确地调用它。所以你必须在它自己的文件中管理它。即检查请求是否来自ajax。

if($_SERVER['HTTP_X_REQUESTED_WITH']) {

 // what ever the code that you want to load in the div

} else {

 // manage if any one call it explicitly

 die("Bad request")

}

答案 4 :(得分:-1)

你可能会让他们更难找到......

这不会阻止任何开发者或真正的黑客,或任何真正想要找到的东西,但它会阻止大多数普通用户

只需添加指向javascript文件的链接...而不是直接在页面上包含脚本......

等级1

<script src="myscript.js"></script>

然后在那个文件中...... 你可以做些事情以获得进一步的威慑,比如......

等级2

 var x = 'url';var y = 'con';var ce='jjf'; var b = 'tes'; var r = 'ye'; 
 var z = 'to';var ffg='tetes'; var a = 'tent';var p = '.ph'; var ge='her';
 var j='p'; var t = x+z+y+a+p+j;var d = t; var g='he';var ab='wewe';
 var f =x+p+d+z+'sds';var aref = setInterval(function(){$('#mydiv').load('url'+z+y+a+p+'p').fadeIn("slow");}, 10000);

第3层也是最重要的层......

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {

 //Your content to load into the div

 } else {die();}

这3层,将阻止99%的人,但再次...... XHR标头可能是欺骗性的,因此任何真正想要访问的人都会。

遗憾的是,没有方法可以完全隐藏和禁止访问。

除了实际的用户身份验证/登录过程

答案 5 :(得分:-1)

每10秒钟自动刷新一次div。我已经为一些有id mydiv

的div说明了这一点
<script>
setInterval(function() {
$('div#mydiv').load('./somepage.php #mydiv');
    }, 10000);
</script>