部署: 在 Heroku(DRF 项目)上 FE 部署: 在 Netlify(React 项目)上
我已将 SendGrid 集成到我的项目中。它在本地计算机上运行良好,但在 Heroku 上部署后抛出 CORS 错误。它根本不允许我登录。
访问 XMLHttpRequest
https://<something>.herokuapp.com/auth/login/
来自来源 https://<something>.netlify.app
已被 CORS 策略阻止,请求的资源上不存在“Access-Control-Allow-Origin”标头。
为了集成 SendGrid,我使用以下软件包:
django-sendgrid-v5==1.2.2
sendgrid==6.10.0
我已经在 Heroku 的 Settings > Config Vars:
中设置了所有必需的环境变量SENDGRID_API_KEY = 'something'
EMAIL_HOST = 'something'
EMAIL_HOST_USER = 'something'
EMAIL_HOST_PASSWORD = 'something'
EMAIL_PORT = 'something'
EMAIL_USE_TLS = 'something'
DEFAULT_FROM_EMAIL = 'something'
EMAIL_FROM = 'something'
据我所知,我已经尝试了所有可能的解决方案。由于它可以在本地计算机上运行,但不能在 Heroku 上运行,因此我添加了名为 Twilio SendGrid 的免费附加组件,并在 Heroku 应用程序 > 设置 > Config Vars 中设置所有必需的参数。
但到目前为止还没有任何效果。
您的应用程序位于 https://.herokuapp.com/auth/login/ 需要允许来自 https://.netlify.app 的请求
您可以在 https://.herokuapp.com 的代码中设置以下响应标头
"Access-Control-Allow-Origin" = "*"
注释:这将允许来自所有域的传入请求。它适合测试,但应在生产使用之前将 * 更改为预期域。