【发布时间】:2020-01-02 19:37:59
【问题描述】:
我正在尝试在同一个VPS 上部署一个 Django 应用程序(制作 REST APIs)和一个 React 应用程序(使用我的 APIs)。
我正在为 Django 设置 CORS,我仍然可以将我的 API 与邮递员一起使用,因为我不应该使用我的 API,因为我只允许我的 VPS IP and localhost。
我已经尝试过
ALLOWED_HOSTS = ["\*"] 和 CORS_ORIGIN_ALLOW_ALL = True
一切顺利,我可以在任何地方使用我的 API
但是现在当我用我的allowed hosts 替换"\*" 并将cors origin 设置为False 时,一切都没有改变。
我尝试从allowed hosts 和白名单中添加remove/set http,但没有任何改变。
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = ["MYIP","127.0.0.1"]
ALLOWED_HOSTS = ["MYIP"]
我使用 python 3.6、django 2.2 和 react 16.8。 感谢您的帮助
【问题讨论】:
-
您是否将
DEBUG设置为false? -
CORS 是用于浏览器的标头。它们保护网络浏览器的用户。 CORS 并不是为了保护您的 API 免受不必要的访问。您需要为此使用其他方法。
-
像这样测试你的 CORS 标头:在另一个网站上嵌入一个调用你的 API 的脚本(例如,在你的机器上给你的本地主机另一个名字并在那里打开它)。然后尝试运行脚本。您会看到您的脚本从您的站点获取 OPTIONS,然后在您的浏览器中出现错误。但你永远不会在 postman 或 curl 中看到这一点。
标签: python django reactjs cors axios