it-roy-ru.com

Как включить CORS в Firefox?

Может кто-нибудь сказать, пожалуйста, как я могу разрешить CORS на Firefox? Я легко справился с этим в Chrome и IE, но у меня ничего не получилось с Firefox. Я отредактировал следующее о: запись конфигурации 

security.fileuri.strict_Origin_policy = false

Эта попытка была опубликована несколько раз здесь и рассказывается на других сайтах, но она не имеет никакого эффекта. Я прочитал руководство Mozilla по политикам Same-Origin:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

но это просто объясняет CORS и связанные с этим темы. Обходного пути, чтобы включить это на FF, нет в списке. 

Я был бы очень признателен за окончательное решение. 

ps: FORCECORS тоже не работает как-то ...

28
Ahab

Ничего не делать с браузером. CORS поддерживается по умолчанию во всех современных браузерах (и начиная с Firefox 3.5).

Сервер, к которому обращается JavaScript, должен предоставить сайту, на котором размещен HTML-документ, в котором JS выполняет разрешение, через заголовки HTTP-ответов CORS.


security.fileuri.strict_Origin_policy используется для предоставления JS в локальных документах HTML доступа ко всему жесткому диску. Не устанавливайте для него значение false, так как это делает вас уязвимым для атак со стороны загруженных документов HTML (включая вложения электронной почты).

18
Quentin

Это возможно только тогда, когда сервер отправляет этот заголовок: Access-Control-Allow-Origin: *

Если это ваш код, вы можете настроить его следующим образом (PHP):

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

Я застрял с этой проблемой в течение длительного времени (CORS не работает в FF, но работает в Chrome и других). Никакой совет не может помочь. Наконец, я обнаружил, что мой локальный поддомен dev (например, sub.example.dev) не был явно упомянут в / etc/hosts, поэтому FF просто не может его найти и показывает сбивающее с толку сообщение об ошибке 'Aborted. .. 'в панели инструментов разработчика. 

Помещение точного субдомена в мой локальный / etc/hosts решило проблему. / etc/hosts - это простой текстовый файл в Unix-системах, поэтому вы можете открыть его под пользователем root и поместить свой поддомен перед ip-адресом 127.0.0.1.

2
Vasiliy

Это дополнение Firefox может работать для вас: 

https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/

Он может включать и выключать CORS в целях разработки.

2
saudes

Очень часто у вас нет возможности настроить отправляющий сервер, поэтому я изменил вызов XMLHttpRequest.open в своем javascript на локальный файл get-file.php, где у меня есть следующий код:

<?php
  $file = file($_GET['url']);
  echo implode('', $file);
?>

javaScript делает это:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    // File content is now in the this.responseText
  }
};
xhttp.open("GET", "get-file.php?url=http://site/file", true);
xhttp.send();

В моем случае это решило ограничение/ситуацию просто отлично. Не нужно взламывать Firefox или серверы. Просто загрузите ваш javascript/html файл с этим небольшим php файлом на сервер, и все готово.

0
Tickseeker