Сеансы не появляются, когда я делаю вызов из-за ajax

Друзья у меня была проблема с sessiones, потому что я не могу возвращать их, когда я называю их из-за ajax с другого домена (ajax звонит в предыдущий домен)

я верю в sessiones в этом домене (http://localhost/multicode/login/prueba)

и после я звоню с ajax в этот же самый домен, но с другого домена (http://localhost:8084/apps/view) (Помещать другой порт - другой домен)

$.ajax({
           type: "POST",
           url:'http://localhost/multicode/login/prueba',
           datatype:"json",
           crossDomain: true, 
           contentType: "application/x-www-form-urlencoded", 
           dataType: 'json', 
           processData: false, 
           cache: false, 
           success : function(r){
               console.log(r)
           }
       });
1
задан 03.01.2017, 21:30
0 ответов

В PHP, них пойдите сеанса они могут проходить через куки-файлы или через параметры в унифицированном указателе ресурса. Обычно через куки-файлы, потому что это оптимальный и более безопасный метод, но возможно через унифицированный указатель ресурса в любом случае, если куки-файлам не дали возможность (шрифт).

Как твои веб сайты находятся в различных доменах, куки-файл отличается и поэтому сеанс не тот же самый. Ты будешь должен перемещать id сеанса как параметр в унифицированном указателе ресурса для того, чтобы они имели сеанс (что-то, что кажется, не делается в просьбе AJAX кода).

Другая проблема, чем ты будешь находиться, состоит в том, что данные о сеансе не будут быть теми же самыми на различных серверах (даже, если ты решил проблему куки-файла). Это проистекает того, что по умолчанию данные хранятся в помещении и не имеются между различными доменами.

Решение для этого состояло бы в том, чтобы создавать один пойдите сеанса собственный (с session_set_save_handler) и сохранять данные о сеансе в системе "независимого" хранения (p.e. в базе данных) присоединенные к этому пойдите сеанса.

Тогда, когда будут сделаны изменения или захотели быть прочитанными данные, независимо от домена, которого он мстит просьбе, будет писаться будет / читаться база данных (с подходящим id сеанса).

0
ответ дан 03.12.2019, 17:53

Мне приходят в голову большие способы решать эту проблему, но окончательно самая простая состояла бы в том, чтобы использовать домены и субдомены; ты можешь создавать куки-файл, который она стоилась бы для ВСЕХ субдоменов. Файлы, которые ты нуждаешься в том, чтобы конфигурировать:

  • В Windows C:\WINDOWS\system32\drivers\etc\hosts
  • В Linux: /etc/hosts

Таким образом ты можешь закреплять твои домены как:

127.0.0.1  desarrollo.com
127.0.0.1  prueba.desarrollo.com
127.0.0.1  produccion.desarrollo.com
127.0.0.1  me_gusta_bailar.desarrollo.com

И твои sesiónes будут иметься между всеми этими субдоменами, таким образом ты можешь делать post с http://desarrollo.com к http://prueba.desarrollo.com и твои сеансы будут длиться без какой-либо проблемы.

0
ответ дан 03.12.2019, 17:53