4

我正在尝试使用我的 Laravel 服务器设置 Relay 和 GraphQL。我已经成功地将 Laravel 设置为服务 GraphQL。

过去,为了使用 jQuery 进行 ajax 调用,我在 master.blade.php 中添加了以下内容:

 <meta name="csrf-token" content="{{ csrf_token() }}">

并将以下内容添加到我的 main.js 文件中:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

我的 GraphQL 端点当前正在返回令牌不匹配异常。在我看来,Relay 需要以与 jQuery.ajax 类似的方式将 csrf-token 传递给服务器。它去哪儿了?

4

1 回答 1

7

配置您的网络层以将标头附加到每个请求:

Relay.injectNetworkLayer(
  new Relay.DefaultNetworkLayer('/graphql', {
    headers: {
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
    },
  })
);

的第二个参数Relay.DefaultNetworkLayer被传递给 的init参数fetch(input, init)。有关详细信息,请参阅中继网络层指南

于 2015-09-16T22:06:37.240 回答