Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测X帧选项_Javascript_Iframe - Fatal编程技术网

Javascript 检测X帧选项

Javascript 检测X帧选项,javascript,iframe,Javascript,Iframe,有没有办法检测是否允许在iframe中加载页面 如果一个URL不能在iframe中加载,我想让用户知道他们提交的URL在我们的网站上不起作用 我已尝试获取内容,但不起作用: $("iframe#data-url").on("load", function() { alert($(this).contents()) }); 我真的不知道该从这里走到哪里 拒绝在帧中显示“”,因为它将“X-frame-Options”设置为“DENY” 是否有方法检测X-Frame-Options?由于您的

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

如果一个URL不能在iframe中加载,我想让用户知道他们提交的URL在我们的网站上不起作用

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

$("iframe#data-url").on("load", function() {
    alert($(this).contents())
});
我真的不知道该从这里走到哪里

拒绝在帧中显示“”,因为它将“X-frame-Options”设置为“DENY”


是否有方法检测
X-Frame-Options

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

这就是我在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));
我知道这不是一个理想的回答,但这是我能为我的项目工作的全部



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

不确定投票人对什么感到不安,这对meThis来说似乎是一个完全有效的问题,这是一个不错的解决方案。JavaScript可能无法读取标题,但PHP确实可以:-)谢谢!我还将把它用于帧断路器,比如
if(self!=top)…
好主意,我想我明天会把它添加到我自己的代码中!美好的为了更好的效果,我把strpos改成了stripos(只有一个词很棒:)