我有2个域名。
我尝试使用window.open
JavaScript代码打开域1中域2的URL,然后用户在域2上执行一些人员,然后使用window.opener
将结果放在域1的div中
一切正常,但在最后一步,我在chrome控制台中给出了跨源框架错误Uncaught DOMException: Blocked a frame with origin "http://example.com" from accessing a cross-origin frame.
。
如何在域1上允许跨源框架?
修改
我的问题不是this question的可能重复,因为我问的是JavaScript窗口对象而不是HTML iframe标记,如果你对html和JavaScript有一点了解,你会理解这一点。
解
在打开php标签后,只需在代码的开头添加header("Access-Control-Allow-Origin: *");
,这样就可以从任何来源(网站)进行访问。
如果您想限制访问权限,请将*
替换为header("Access-Control-Allow-Origin: http://example.com/");
答案 0 :(得分:0)
<?php
// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
?>