Почему в локальной сети не отправляются файлы cookie? - PullRequest
0 голосов
/ 23 апреля 2019

Я использую XAMPP и открываю веб-сайт, размещенный на ПК desk с другого ПК в локальной сети.

Я использую Laravel Passport с CreateFreshApiToken промежуточным ПО. Когда я отправляю сообщение на API GraphQL с ПК "desk", все работает нормально, но отправка с другого ПК завершается неудачно: файлы cookie не отправляются.

Cookies только для HTTP. Мне интересно, если это какая-то междоменная проблема, но я везде использую один и тот же домен: http://desk и http://desk/graphql для моего API.

Почему файлы cookie не отправляются?

Настройка клиента Apollo

const httpLinkSecret = new HttpLink({
  // You should use an absolute URL here
  uri: "http://desk/graphql"
});
 var csrfToken = window.csrfToken;
Vue.prototype.csrfToken = window.csrfToken;
const authMiddleware = new ApolloLink((operation, forward, error) => {
  // add authorization to the headers
  operation.setContext({
    headers: {
      "X-CSRF-TOKEN": csrfToken
    }
  });
  return forward(operation);
});


const apolloClientSecret = new ApolloClient({
  link: authMiddleware.concat(errorLink).concat(httpLinkSecret),
  cache: new InMemoryCache(),
  connectToDevTools: true
});

РЕДАКТИРОВАТЬ 1

Я понял, что на других машинах он работает в Chrome (только для настольных компьютеров, но не для мобильных устройств), но не в Edge.

РЕДАКТИРОВАТЬ 2

Если я просто сделаю

var xhr = new XMLHttpRequest();
xhr.open('POST', '/graphql', true);

xhr.onload = function () {
  // Request finished. Do processing here.
};

xhr.send(null);

Затем добавляется заголовок cookie. Почему он не работает с клиентом Apollo?

...