我的服务器(用 Django
编写)在 http://localhost:8000
运行。
Nuxt
应用程序正在 http://localhost:3000
运行。
当我向服务器发送请求(如 http://localhost:8000/api/v1/user/position/
)时,我在 firefox
浏览器中收到以下错误。
跨源请求被阻止:同源策略不允许读取位于 http://localhost:8000/api/v1/user/position/ 的远程资源。 (原因:缺少 CORS 标头“Access-Control-Allow-Origin”)。
火狐:
铬合金:
下面是我的 nuxt.config.js
文件的一部分。
modules: [
'@nuxtjs/axios',
'@nuxtjs/proxy'
],
axios: {
baseURL: 'http://localhost:8000/api/v1/',
},
以及我发送请求的功能:
async getAllPosition() {
this.loading_position = true;
await this.$axios.get('user/position/').then(response => {
this.position = response.data;
}).finally(() => {
this.loading_position = false;
})
}
我认为这是关于代理的,但我不知道如何配置它。
原文由 Saeed 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如 @BananaLama 和 @TMFLGR 在他们的回答中提到的:
我需要在我的
Django
服务器中指定Access-Control-Allow-Origin
标头,以允许跨源请求。为此,我使用django-cors-headers
包。然后在
settings.py
部分允许它,结果很好地返回了。结果: