Я хочу использовать jQuery для запуска асинхронной записи с данными в «[domain1] /first.php» на сервере № 1, когда пользователь на странице «[domain2] /unrelated.php» на сервере № 2 нажимает ссылку на « [domain2] /second.php?var1=data1?var2=data2 «это на сервере № 2. Я не хочу ждать, пока «[domain1] /first.php» закончит работу или вернет какой-либо ответ.
«[domain2] /second.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);»?
Спасибо за ваше время!
Задача ещё не решена.
Других решений пока нет …