b2b2dot0/magento-2-cors-requests

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

安装: 436

依赖关系: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 30

类型:magento2-module

100.0.7 2022-05-19 15:09 UTC

This package is not auto-updated.

Last update: 2024-09-21 01:17:01 UTC


README

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

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

安装方法

1. 通过 composer

composer require b2b2dot0/magento-2-cors-requests

编辑 composer.json

{
    "require": {
        "splashlab/magento-2-cors-requests": "100.0.7"
    }
}
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

它是如何工作的?

本 README 不涉及 CORS 跨域 HTTP 请求的完整实现,但这是此模块所做的事情

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