我是PHP和Javascript的初学者..
我找到了http://cmichaelis.whsites.net/whblog/jquery-extjs-1/example2
的链接在其中有一个代码说:
function addPanel(location)
{
tabpanel.add({
autoLoad: {url: location},
title: 'More Information...',
closable:true,
autoScroll:true
}).show();
}
使用方法:
<a href="javascript:void(0);"
onclick="addPanel('loadpage.php?a=http://www.google.com')">
head over to Google
</a>
我想问的是.. loadpage.php的代码是什么?
答案 0 :(得分:1)
根据其他答案的建议,PHP页面不会回显google.com的内容。它输出一个指向Google的iframe:
<iframe src="http://www.google.com" width="100%" height="100%" frameborder="no"></iframe>
答案 1 :(得分:0)
使用file_get_contents似乎可以使用loadpage.php
来回显www.google.com
的内容。
<强> loadpage.php 强>:
<?php
// Simplified output - should sanitise $_REQUEST params etc first..
echo file_get_contents($_REQUEST['a']);
?>
loadpage
实际上充当代理,允许您的javascript调用不属于您自己域的网页。
正如@annakata在评论中指出的那样,上面的代码原样是非常危险的。代码说明了代理文件背后的基本思想 - 在生产中,此文件需要确保$_REQUEST
参数已经过清理,例如只接受来自白名单的值。
same origin policy是javascript的一个安全元素,可以阻止您使用javascript将内容从域外拉到您的网页上。
有些网站通过在自己的服务器上调用代理页面(在此实例中为loadpage
)来解决这个问题,这实际上只是打印出目标网址的内容。由于此代理页面位于您的服务器上,因此会绕过相同的原始安全问题,并仍然可以从其他域提供页面内容 - 此处www.google.com
<小时/> 哎呀,我有点愚蠢地没有RTFA,只是问题中的代码,并假设它可以做什么。关于q中链接的页面实际正在做什么,@andynormancx正确答案。