我正在为客户端使用Angular开发应用程序,为服务器端使用Django开发应用程序。在开发过程中,我在端口8000中运行Django来管理所有API请求,并使用在端口4200上运行的Angular CLI为我的客户端应用程序提供服务。
向Django发送GET请求没有问题但是当我尝试发送包含一些带有会话信息的cookie的POST请求时,它会失败,因为cookie不包含在标题中。
我知道这个"问题的来源"是CORS问题 [read more here]并且它不会成为生产中的问题,因为客户端和服务器应用程序将在同一服务器和端口中运行,但我想知道如何解决这种情况至少是发展。
我尝试使用django-cors-headers module并将选项CORS_ALLOW_CREDENTIALS
和CORS_ORIGIN_ALLOW_ALL
设置为True
,但它没有效果。
有什么想法吗?
答案 0 :(得分:0)
最后,我设法完成所有工作。
我认为这是Django的一个问题所以我安装了django-cors-headers模块,但问题是""在浏览器中(实际上不是问题,这是一个安全问题,请参见[此处] [1])。
无论如何,我使用代理规则解决了我的Angular CLI问题,如下所示:
{
"/api": {
"target": "http://localhost:8000",
"secure": false
}
}
ng serve --watch **--proxy-config proxy.conf.json**
现在,所有API请求都被发送到端口4200,Angular在内部将它们重定向到Django,避免了CORS问题。
注意:使用此解决方案,我不再需要django-cors-headers模块。