在前后端分离项目中,`vue`与`django`搭配是常见组合,但`CSRF Token`问题常让人头疼。核心原因在于Django默认开启CSRF保护机制,而Vue作为前端框架,无法直接获取后端的CSRF Token。如何优雅地解决?
首先,我们需要在Django后端设置CSRF信任域名。通过修改`settings.py`中的`CSRF_TRUSTED_ORIGINS`字段,确保Vue服务的域名被信任。例如:
```python
CSRF_TRUSTED_ORIGINS = ["https://your-vue-domain.com"]
```
其次,在Vue中通过API接口获取CSRF Token。后端可以单独提供一个接口(如`/api/csrf-token`),返回Token值,前端将其存储并附加到每个请求头中。例如:
```javascript
axios.get('/api/csrf-token').then(response => {
const csrfToken = response.data.csrfToken;
axios.defaults.headers.common['X-CSRFToken'] = csrfToken;
});
```
最后,确保所有POST、PUT等需要CSRF验证的操作都携带Token,即可顺利解决该问题。💪🔥
通过以上步骤,前后端协作更加顺畅,项目开发效率直线提升!🌟