📜  ?: (corsheaders.E013) 原点 '.'在 CORS_ORIGIN_WHITELIST 中缺少方案或 netloc 提示:添加方案(例如 https:)或 netloc(例如 example.com). - Python (1)

📅  最后修改于: 2023-12-03 15:13:11.513000             🧑  作者: Mango

'?: (corsheaders.E013)' 原点 '.' 在 CORS_ORIGIN_WHITELIST 中缺少方案或 netloc

如果你在使用 Django 中的 corsheaders 库时遇到了此错误:'?: (corsheaders.E013) 原点 '.' 在 CORS_ORIGIN_WHITELIST 中缺少方案或 netloc',那么本篇文章将会为你提供一些解决方法。

什么是 corsheaders?

CORS(跨域资源共享)是一个 Web 浏览器的标准,它允许一个页面在指定的源站点上使用其它网站的资源。这使得 Web 应用程序能够在客户端跨域共享数据。

而 corsheaders 就是一个 Django 库,它允许你在 Django 后端配置 CORS。使用该库,你可以控制哪些域可以访问你的 Django 服务器上的资源。

什么是 CORS_ORIGIN_WHITELIST?

CORS_ORIGIN_WHITELIST 是 corsheaders 库中的一个配置选项。该选项用于指定允许访问 Django 后端的域名。

什么是出现错误原因?

当配置选项 CORS_ORIGIN_WHITELIST 中包含一个 '.' 字符时,会出现此错误。这是因为在 Django 中,CORS_ORIGIN_WHITELIST 指定的域名必须指定一个方案(如 https)和一个 netloc(如 example.com)。

如何解决此问题?

你可以采用以下方法来解决该问题:

  1. 将 CORS_ORIGIN_WHITELIST 中的 '.' 改为一个符合要求的域名。

例如:

CORS_ORIGIN_WHITELIST = [
    'https://example.com',
    'http://localhost:3000',
]
  1. 在配置选项 CORS_ORIGIN_WHITELIST 中添加一个符合要求的域名和端口号

例如:

CORS_ORIGIN_WHITELIST = [
    'https://example.com',
    'http://localhost:3000',
    'http://127.0.0.1:8000',
]

通过以上方法,你就可以解决 '?: (corsheaders.E013) 原点 '.' 在 CORS_ORIGIN_WHITELIST 中缺少方案或 netloc' 的问题啦!