我正在尝试使用我的 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 端点当前返回 token 不匹配异常。在我看来,Relay 需要以与 jQuery.ajax 类似的方式将 csrf-token 传递到服务器。它去哪儿了?
最佳答案
配置网络层以将 header 附加到每个请求:
Relay.injectNetworkLayer(
new Relay.DefaultNetworkLayer('/graphql', {
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
},
})
);
Relay.DefaultNetworkLayer
的第二个参数传递给 fetch(input, init)
的 init
参数。请参阅Relay Network Layer Guide了解更多信息。
关于laravel - 您将 CSRF token 放在 Relay/GraphQL 中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32618424/