У меня есть расширение Chrome, которое специальным образом отслеживает браузер, отправляя некоторые данные на веб-сервер. В текущей конфигурации это localhost. Таким образом, скрипт контента содержит такой код:
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(data)...
xhr.open('GET', url, true);
xhr.send();
где параметр url равен 'http://localhost/ctrl?params' (или http://127.0.0.1/ctrl?params - это не имеет значения).
Manifest-файл содержит все необходимые разрешения для межсайтовых запросов.
Расширение отлично работает на большинстве сайтов, но на одном сайте я получаю сообщение об ошибке:
XMLHttpRequest cannot load http://localhost/ctrl?params. Origin http://www.thissite.com is not allowed by Access-Control-Allow-Origin.
Я пробовал несколько разрешений, которые предлагаются здесь (*://*/*
, http://*/*
и <all_urls>
), но никто не помог решить проблему.
Итак, вопрос в том, что может быть не так с этим конкретным сайтом (по-видимому, могут быть другие сайты с похожим поведением, и я хотел бы знать природу этого), и как исправить ошибку?