Laravel7 跨域配置路由是子域名如何设置?

默认的 config/cors.php 是这样的

<?php
...
'paths' => ['api/*'],
...

如果路由是在子域名下呢? 例如 api.domain.test/users, 这样的 paths 该如何设置呢?

:computer: & :coffee:
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 2

遇到了相同的问题,你解决了吗?

4年前 评论

@mostwin

path 可以像设置成这样 http://api.domain.test/*

看下源码过滤路径这个地方

vendor\fruitcake\laravel-cors\src\HandleCors.php

   protected function isMatchingPath(Request $request): bool
    {
        // 我们设置的 paths 是 ['http://api.domain.test/*']
        $paths = $this->container['config']->get('cors.paths', []);
        foreach ($paths as $path) {
            if ($path !== '/') {
                $path = trim($path, '/');
            }
            if ($request->fullUrlIs($path) || $request->is($path)) {
                return true;
            }
        }
        return false;
    }

假设接口地址是 http://api.domain.test/users$request->fullUrlIs($path) 返回的是 true

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!