Браузер не принимает Cookie

219
01 июля 2018, 18:20

Имеются два приложения:

  • Laravel 5.6 - PHP 7.1, Apache, http://api.domain.com
  • Vue2 - Node 8.11.2, http://test.domain.com:8080

Пытаюсь запросом к api получить Cookie в ответ.

Код на клиенте:

axios.get('//api.domain.com/api/testget')
    .then(function (response) {
        console.log(response)
    })
    .catch(function (error) {
        console.log(error)
    })

Код на сервере (api routes):

Route::get('/testget', function () {
    return response('ok')
        ->cookie('name', 'value', 10, '/', '.domain.com', false, false)
});

Header присутствует:
Set-Cookie: name=value; expires=Wed, 06-Jun-2018 15:31:51 GMT; Max-Age=600; path=/; domain=.domain.com
Но document.cookie возвращает "", на панели разработчика в браузере в разделе Application->Cookies тоже ничего нету. Ошибок в консоли нету.

Response Headers полностью:

HTTP/1.1 200 OK
Date: Wed, 06 Jun 2018 15:23:44 GMT
Server: Apache
Cache-Control: no-cache, private
Access-Control-Allow-Origin: http://admin.domain.com:8080
Vary: Origin
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
Set-Cookie: name=value; expires=Wed, 06-Jun-2018 15:33:44 GMT; Max-Age=600; path=/; domain=.domain.com
Content-Length: 2
Keep-Alive: timeout=10, max=99
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

В чем может быть проблема?

Answer 1

Решение:

axios.get('//api.domain.com/api/testget', {withCredentials: true}) //<---
    .then(function (response) {
        console.log(response)
    })
    .catch(function (error) {
        console.log(error)
    })

Сервер должен устанавливать соответственный Header при отправке ответа. Полезная библиотека.
Конфиг:

return [
    ...
    'supportsCredentials' => true, //<---
    ...
]
READ ALSO
Работа с array_intersect в PHP

Работа с array_intersect в PHP

Есть бесконечное число N массивов в массивеВ этих массивах также есть неопределённое количество элементов

237
Ajax вывести результат php-скрипта в div

Ajax вывести результат php-скрипта в div

Имеется форма, в которую пользователь вводит текстовое сообщение, затем оно обрабатывается в php и пользователь получает ответЭто мой первый...

334
Кодировка php на сайте

Кодировка php на сайте

Есть сайт ссылка на нем используется следующий код:

239
URL-оповещения Free-kassa

URL-оповещения Free-kassa

Оплатил товар на сайте, зашел в логи, вижу: запрос:

347