electrobayan/magento-2-cors-requests

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

100.0.7 2022-05-19 14:30 UTC

This package is auto-updated.

Last update: 2024-09-19 20:13:28 UTC


README

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

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

如何安装

1. 通过 composer

composer require electrobayan/magento-2-cors-requests

或者

编辑 composer.json

{
    "require": {
        "splashlab/magento-2-cors-requests": "100.0.7"
    }
}
composer install/update
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. 此域名被添加到 Access-Control-Allow-Origin 响应 HTTP 头
  3. 可选地,您还可以启用 Access-Control-Allow-Credentials 头,以启用传递 cookies

对于非 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 跨域请求参考