使用 SendGrid 时出现 CORS 错误,说明来源已被 CORS 策略阻止。请求的资源上不存在 Access-Control-Allow-Origin 标头

问题描述 投票:0回答:1

部署: 在 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 中设置所有必需的参数。

但到目前为止还没有任何效果。

python-3.x heroku django-rest-framework cors sendgrid
1个回答
0
投票

您的应用程序位于 https://.herokuapp.com/auth/login/ 需要允许来自 https://.netlify.app 的请求

您可以在 https://.herokuapp.com 的代码中设置以下响应标头

"Access-Control-Allow-Origin" =  "*"

注释:这将允许来自所有域的传入请求。它适合测试,但应在生产使用之前将 * 更改为预期域。

© www.soinside.com 2019 - 2024. All rights reserved.