为什么在本地网络中没有发送Cookie?

时间:2019-04-22 21:32:08

标签: laravel vue.js graphql apollo-client vue-apollo

我正在使用XAMPP,并从本地网络中的另一台PC打开PC desk上托管的网站。

我正在将Laravel Passport与CreateFreshApiToken中间件一起使用。当我从PC“ desk”发布到GraphQL API时,一切正常,但从另一台PC发布失败:没有发送Cookie。

Cookie仅使用HTTP。我想知道这是否是跨域问题,但是我到处都使用相同的域:API的http://deskhttp://desk/graphql

为什么不发送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 Client?

0 个答案:

没有答案