缺少访问控制允许源标头



我已经在其他域中包含了这个javascript:

var id = "<?php echo check_input($_GET['token']); ?>";
var querystring = "";
var lockerurl = "https://www.example.com/contentlocker/getlocker.php?" + 'id=' + encodeURIComponent(id) + '&r=' + encodeURIComponent(referrer) + querystring;

var iframecontents;
var old_display;
function optionstoquery(options) {
var query = "";
if (options.mt) query += "&mt=" + encodeURIComponent(options.mt);
if (options.dt) query += "&dt=" + encodeURIComponent(options.dt);
if (options.dd) query += "&dd=" + encodeURIComponent(options.dd);
if (options.md) query += "&md=" + encodeURIComponent(options.md);
return query;
}
function og_load(options) {
if (options) lockerurl += optionstoquery(options);
//preload
var xhr = new XMLHttpRequest();
xhr.open('GET', lockerurl, true);
xhr.onreadystatechange = function() {
if (this.readyState!==4) return;
if (this.status!==200) {
iframecontents = false;
return;
}
iframecontents = this.responseText;
};
xhr.send();
ogEditBody();
}

控制台它向我显示:

跨源请求被阻止:同源策略不允许读取 位于的远程资源 https://www.example.com/contentlocker/getlocker.php?id=3e066b64a78214a17620b5521b6d3ec4&r=aHR0cDovL2NwYWh1Yi51cy9yb29zdGVyMi5odG1s。 (原因:缺少 CORS 标头"访问控制-允许源"(。

getlocker.php包含一些PHP和HTML代码!

我使用 Plesk 作为网络服务器,我尝试通过添加 getlocker.php:

header('Access-Control-Allow-Origin: *');

但仍然不起作用!

CORS 标头必须在主页请求中发送,因此,如果您在发送嵌入式 scrip 时仅设置它,那是不够的。

这是PHP文件中的第一行吗?

header("Access-Control-Allow-Origin: *");

另外,尝试在 AJAX 调用或 HTTPRequest 中发送crossDomain: true

从服务器端,在 Linux 服务器上,您可以在 Web 服务器配置中设置所需的标头:

对于 Plesk 中的源域example.com,请转到Domains > example.com > Apache and nginx settings并在Additional directives for HTTPAdditional directives for HTTPS中添加以下指令:

Header set Access-Control-Allow-Origin "*"

或者,在这种情况下,可以使用.htaccess包含以下内容的文件:

<IfModule mod_headers.c>p
Header always set Access-Control-Allow-Origin "*"
</IfModule>

如果启用了 Nginx 并且需要显示静态内容,请在不带 Apache 指令Additional nginx directives字段中使用以下指令:

add_header Access-Control-Allow-Origin "*";

相关内容

  • 没有找到相关文章

最新更新