gpt4 book ai didi

javascript - 检测 X 帧选项

转载 作者:行者123 更新时间:2023-12-01 01:42:59 25 4
gpt4 key购买 nike

有没有办法检测是否允许在 iframe 中加载页面?

如果 URL 无法在 iframe 中加载,我想让用户知道他们提交的 URL 将无法在我们的网站上使用。

我尝试获取内容,但不起作用:

$("iframe#data-url").on("load", function() {
alert($(this).contents())
});

我不太确定从这里该去哪里。

Refused to display 'https://www.facebook.com/' in a frame because it set 'X-Frame-Options' to 'DENY'.

有没有办法检测X-Frame-Options

最佳答案

由于您的脚本和目标 URL 位于不同的域,JavaScript 的跨域策略不会让您访问 header 。几个月前我遇到了同样的问题,最终使用 JavaScript 将 AJAX 请求发送到 PHP 文件,然后该文件可以解析 header 。

这是我在 PHP 文件中的内容。然后,这将以 JSON 数组的形式返回结果。如果有帮助请告诉我!

$error=false;
$urlhere='http://facebook.com';
$ch = curl_init();

$options = array(
CURLOPT_URL => $urlhere,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch);
$headers=substr($response, 0, $httpCode['header_size']);
if(strpos($headers, 'X-Frame-Options: deny')>-1||strpos($headers, 'X-Frame-Options: SAMEORIGIN')>-1) {
$error=true;
}
$httpcode= curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo json_encode(array('httpcode'=>$httpcode, 'error'=>$error));

我知道这不是一个理想的回应,但这就是我在我的项目中所能得到的一切。

<小时/>

编辑:Bill如下所述,如果您更改 strpos()stripos()您可能会得到更好的结果,因为它运行不区分大小写的搜索。

关于javascript - 检测 X 帧选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34159334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com