我正在将VueJS单页面应用程序设置在Django之上。我已经运行了Graphene端点 /api
,并且在graphiql
中的查询运行良好。我已经设置了前端,并且我正在使用Apollo Client查询服务器。这是我的设置:
const CSRFtoken = Cookies.get('csrftoken')
const networkInterface = createNetworkInterface({
uri: '/api',
transportBatching: true
})
networkInterface.use([{
applyMiddleware (req, next) {
if (!req.options.headers) {
req.options.headers = {} // Create the header object if needed.
}
req.options.headers['X-CSRFToken'] = CSRFtoken
console.log('applied middleware')
next()
}
}])
const apolloClient = new ApolloClient({
networkInterface,
connectToDevTools: true
})
Vue.use(VueApollo)
const apolloProvider = new VueApollo({
defaultClient: apolloClient
})
new Vue({
el: '#app',
apolloProvider,
render: h => h(App)
});
我的POST请求带有由`Cookies`提供的`X-CSRFToken`标头值。如下截图所示:
![Request Headers](https://istack.dev59.com/g9rDm.webp)
不幸的是,Django拒绝访问(错误403),并显示消息:“CSRF cookie missing”。
我已经在网上搜索了很久,但没找到任何相关信息。
提前感谢您!
const CSRFtoken
,它的值是否正确? - knbk