splashlab/magento-2-cors-requests

从配置的源域名启用跨源资源共享(CORS)请求到 Magento 2 API

安装次数: 188,079

依赖: 0

推荐者: 0

安全: 0

星标: 69

关注者: 10

分支: 30

开放性问题: 3

类型:magento2-module

100.0.7 2022-10-18 04:41 UTC

This package is auto-updated.

Last update: 2024-09-18 08:50:10 UTC


README

此模块允许您通过添加适当的 HTTP 标头和处理预检 OPTIONS 请求来在 Magento 2 中启用跨源资源共享(CORS)REST API 请求。

这可以用来允许从另一个域名(或子域名)到 Magento 2 REST API 的 AJAX 和其他请求。

如何安装

1. 通过 composer

编辑 composer.json

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/splashlab/magento-2-cors-requests"
        }
    ],
    "require": {
        "splashlab/magento-2-cors-requests": "dev-master"
    }
}
composer install
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy

2. 复制并粘贴

从 GitHub 下载最新版本

粘贴到 app/code/SplashLab/CorsRequests 目录

php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy

3. 更新源 URL

店铺 -> 配置,转到 常规 -> 网络设置 -> CORS 请求配置

然后编辑 CORS 源 URL 字段到您想启用跨域请求的域名。例如: http://example.com

它是如何工作的?

完整的 CORS 跨域 HTTP 请求实现超出了本 README 的范围,但以下是本模块所做的工作

  1. 允许在管理员配置区域配置源 URL - 这是允许跨域请求的域名
  2. 此域名被添加到响应 HTTP 标头 Access-Control-Allow-Origin
  3. 可选地,您还可以启用 Access-Control-Allow-Credentials 标头,以允许传递 Cookie

对于非 GET 和非标准 POST 请求(即 PUT 和 DELETE),由以下处理“预检检查” OPTIONS 请求:

  1. 带有适当标头的空 /V1/cors/check API 响应
  2. 响应标头 Access-Control-Allow-Methods,它反映了请求标头 Access-Control-Request-Method
  3. 响应标头 Access-Control-Allow-Headers,它反映了请求标头 Access-Control-Request-Headers

替代解决方案

您也可以使用 Apache 和 Nginx 规则来管理这些 CORS 标头,而不是使用此扩展

但我创建此扩展是为了允许您在管理员配置中配置源域名,并避免需要创建和管理特殊服务器配置。

CORS 跨域请求参考