Невозможно установить cook ie в другом домене. - PullRequest
0 голосов
/ 07 апреля 2020

Этот URL имеет следующий код: https://trywifibooster.com/test/setCookiesFromAnotherDomain.html?param=SHOULD-SET-TO-THIS

var params = new window.URLSearchParams(window.location.search).get('param');

$.ajax({

  type: 'GET',
  crossDomain: true,
  url: 'https://go.allthatstrendy.com/intercart/cookies/Test/saveCookies2.php',
  data: 
  "UTMParamsString=" + params,

  //success
  success:function(data) {

    console.log(data);

  },
  //error
  error:function(xhr, options, error) {
     console.log("Cookies not successfully saved" + error);
  }
});

alert("Sent: " + params);

Который должен принимать переменные, переданные в URL. Затем сохраните его в этом домене как повар ie go.allthatstrendy.com. Это делается с помощью сценария PHP, выполняемого AJAX.

Сценарий PHP:

<?php

    // Headers
    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Credentials: true");
    header("Access-Control-Allow-Methods: GET, POST");
    header("Access-Control-Allow-Headers: Content-Type, *");

    if(isset($_GET['UTMParamsString'])) {

        $UTMParamsString = $_GET['UTMParamsString'];

        setcookie("UTMParamsString", $UTMParamsString, time()+3600, "/", "allthatstrendy.com", 1);

    }

    echo "GET VARIABLE: " . $UTMParamsString;

    echo "<br/>";

    echo "CHECK COOKIE WAS SET: " . $_COOKIE['UTMParamsString'];

?>

Однако, когда выполняется Ajax на trywifibooster.com, ведущий на go .allthatstrendy.com, файлы cookie не установлены.

После запуска вышеуказанного URL. Go до https://go.allthatstrendy.com/intercart/ и проверьте куки. Он не установлен!

Я даже настроил его, чтобы вы могли выполнить скрипт прямо на go .allthatstrendy.com и установить повара ie прямо там. Это работает так.

См .: https://go.allthatstrendy.com/intercart/cookies/Test/saveCookies2.php?UTMParamsString=TESTjhghgjghj

Однако, когда я пытаюсь установить повара ie здесь https://trywifibooster.com/test/setCookiesFromAnotherDomain.html?param=SHOULD-SET-TO-THIS

Это не установлено. Там нет перекрестной ошибки или что-нибудь. Я ходил туда и обратно более 3 часов, и я честно собираюсь кричать. Это не имеет никакого смысла. Я опытный разработчик. Так что это делает его еще более неприятным!

1 Ответ

1 голос
/ 07 апреля 2020

XHR не отправляет и не принимает файлы cookie, если вы явно не включили поддержку учетных данных:

$.ajax({
  type: 'GET',
  xhrFields: {
    withCredentials: true
  }

Обратите внимание, что это сделает ваш запрос предварительно выданным .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...