跳转到主要内容

Datasette插件,用于配置CORS头信息

项目描述

datasette-cors

PyPI Tests Changelog License

基于 asgi-cors 的Datasette插件,用于配置CORS头信息。

您可以使用此插件允许在允许列表的域名集合上运行的JavaScript对您的Datasette实例提供的JSON API进行fetch()调用。

安装

datasette install datasette-cors

配置

您需要添加一些插件配置,以便此插件生效。

要允许特定域名,使用以下方法

{
    "plugins": {
        "datasette-cors": {
            "hosts": ["https://www.example.com"]
        }
    }
}

这将影响 access-control-allow-origin 头。

您也可以按如下方式允许匹配主机模式

{
    "plugins": {
        "datasette-cors": {
            "host_wildcards": ["https://*.example.com"]
        }
    }
}

要允许所有来源,使用以下方法

{
    "plugins": {
        "datasette-cors": {
            "allow_all": true
        }
    }
}

这将把 access-control-allow-origin 头设置为 *

您可以使用 access-control-allow-headers 头通过 headers 选项指定允许的头部

{
    "plugins": {
        "datasette-cors": {
            "allow_all": true,
            "headers": ["Authorization", "Content-Type"]
        }
    }
}

要使用 access-control-allow-methods 头允许特定的HTTP方法,使用 methods 选项

{
    "plugins": {
        "datasette-cors": {
            "allow_all": true,
            "methods": ["GET", "POST", "OPTIONS"]
        }
    }
}

您可以使用 max_age 选项设置 access-control-max-age

{
    "plugins": {
        "datasette-cors": {
            "allow_all": true,
            "max_age": 3600
        }
    }
}

测试它

要测试此插件,请将其保存为 metadata.json 并在本地运行以下命令

datasette -m metadata.json

使用Datasette 1.0,请使用 -c config.json 代替,或者尝试以下方法

datasette -s plugins.datasette-cors.allow_all true

现在,在您的浏览器中访问 https://www.example.com/,打开浏览器开发者控制台,并粘贴以下内容

fetch("http://127.0.0.1:8001/_memory.json?sql=select+sqlite_version%28%29").then(r => r.json()).then(console.log)

如果插件工作正常,您将在控制台看到JSON响应输出。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

datasette-cors-1.0.1.tar.gz (6.6 kB 查看哈希值)

上传时间 源代码

构建发行版

datasette_cors-1.0.1-py3-none-any.whl (7.0 kB 查看哈希值)

上传时间 Python 3

由以下提供支持