Заголовок Access-Control-Allow-Origin отсутствует - PullRequest
0 голосов
/ 10 мая 2018

Я включил этот 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 ‘Access-Control-Allow-Origin’).

getlocker.php содержит код php и html!

Я использовал Plesk в качестве веб-сервера и попытался добавить в getlocker.php:

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

Но все еще не работает!

Ответы [ 3 ]

0 голосов
/ 10 мая 2018

Это первая строка в вашем файле PHP?

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

Также попробуйте отправить crossDomain: true при вызове AJAX или HTTPRequest.

0 голосов
/ 10 мая 2018

Со стороны сервера на сервере Linux вы можете установить требуемый заголовок в конфигурации веб-сервера:

Для исходного домена example.com в Plesk перейдите на Domains > example.com > Apache and nginx settings и добавьте следующие директивы в Additional directives for HTTP и Additional directives for HTTPS:

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

В качестве альтернативы, в этом случае можно использовать файл .htaccess со следующим содержимым:

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

Если Nginx включен и требуется отображать статическое содержимое, используйте следующую директиву в поле Additional nginx directives без директив Apache:

add_header Access-Control-Allow-Origin "*";
0 голосов
/ 10 мая 2018

Заголовок CORS должен быть отправлен в запросе главной страницы, поэтому, если вы просто установите его при отправке встроенного скрипта, этого недостаточно.

...