CORS, читать файлы cookie домена [дубликат]

Попробуйте этот код, он отлично работает

назначает переменную post переменной

   $username = $_POST['uname'];

   $password = $_POST['pass'];

  $result = mysql_query('SELECT * FROM userData WHERE UserName LIKE $username');

if(!empty($result)){

    while($row = mysql_fetch_array($result)){
        echo $row['FirstName'];
     }
}
48
задан abatishchev 22 October 2015 в 21:20
поделиться

3 ответа

Вы не можете устанавливать или читать файлы cookie для запросов CORS через JavaScript. Хотя CORS разрешает запросы с кросс-началом, куки-файлы по-прежнему зависят от политики браузера с одинаковым исходным кодом, что означает, что только страницы из одного источника могут читать / записывать cookie. withCredentials означает, что любые файлы cookie, установленные удаленным хостом, отправляются на этот удаленный хост. Вам нужно будет установить cookie с удаленного сервера с помощью заголовка Set-Cookie.

56
ответ дан monsur 27 August 2018 в 16:30
поделиться

Обратите внимание, что это не решает процесс обмена файлами cookie, так как в целом это плохая практика.

Вы должны использовать JSONP в качестве своего типа:

From $. ajax: запросы на междоменные и dataType: запросы «jsonp» не поддерживают синхронную работу.

$.ajax(
    { 
      type: "POST",
      url: "http://example.com/api/getlist.json",
      dataType: 'jsonp',
      xhrFields: {
           withCredentials: true
      },
      crossDomain: true,
      beforeSend: function(xhr) {
            xhr.setRequestHeader("Cookie", "session=xxxyyyzzz");
      },
      success: function(){
           alert('success');
      },
      error: function (xhr) {
             alert(xhr.responseText);
      }
    }
);
19
ответ дан Kenster 27 August 2018 в 16:30
поделиться

У меня была такая же проблема. Идентификатор сеанса отправляется в файл cookie, но поскольку запрос является междоменным, настройки безопасности браузера блокируют отправку файла cookie.

Решение. Создайте идентификатор сеанса на клиенте (в браузере ), используйте Javascript sessionStorage для хранения идентификатора сеанса, затем отправьте идентификатор сеанса с каждым запросом на сервер.

Я много боролся с этой проблемой, и не было много хороших ответов. Вот статья, в которой подробно описывается решение: Междоменный запрос Javascript с сеансом

5
ответ дан PerKristian 27 August 2018 в 16:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: