CORS заблокирован в Firefox

Я хочу использовать jQuery для запуска асинхронной записи с данными в «[domain1] /first.php» на сервере № 1, когда пользователь на странице «[domain2] /unrelated.php» на сервере № 2 нажимает ссылку на « [domain2] /second.php?var1=data1?var2=data2 «это на сервере № 2. Я не хочу ждать, пока «[domain1] /first.php» закончит работу или вернет какой-либо ответ.

  1. «[domain1] /first.php» настроен для обработки данных (он также выполняет cURL для «[domain2] /unrelated2.php» на сервере # 1) и ничего не выводит, а завершается «выходом»; или строка «?>».
  2. «[domain2] /second.php» обрабатывает данные и отображает страницу.

    • Это работает в Chrome, Opera и Firefox, когда это синхронно. (но это медленно из-за обработки данных, я хочу избежать ожидания после публикации и до того, как он перейдет по нажатой ссылке)
    • Он работает в Chrome или Opera, когда он асинхронный.
    • Firefox выдает ошибку CORS в консоли для «[domain1] /first.php», когда она асинхронная:

«Запрос на перекрестное происхождение заблокирован: та же политика происхождения запрещена
чтение удаленного ресурса в [domain1] /first.php. Это можно исправить
переместив ресурс в тот же домен или включив CORS. «


Я попытался добавить это в начало «[domain1] /first.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);
}

AJAX-вызов jQuery для «[domain2] /unrelated.php»:

    $.ajax({
url: '[domain1]/first.php',
type: 'POST',
data: parameters
});

Все три браузера, используемые для тестирования, обновлены. Используется jQuery 1.7.2.


Я мог обнаружить Firefox и заставить его использовать только синхронный пост, но вряд ли он удовлетворителен, если учесть, что он работает асинхронно в двух других браузерах.

Есть мысли или предложения?

Я мог бы опубликовать, как выглядят заголовки запроса и ответа, но я не могу сделать это прямо сейчас, я внесу их позже, извиняюсь.
При поиске вокруг, это, по-видимому, в первую очередь проблема заголовка, который сервер № 2 отправляет обратно в ответ на исходное сообщение с сервера № 1, поэтому я предполагаю, что размещение этих заголовков является критическим для решения этого случая?
Может быть, я должен раскомментировать комментарий «// exit (0);»?

Спасибо за ваше время!

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector