laravel5.4已经增加头部跨域中间件的情况下,页面仍然无法收到响应结果

1. 运行环境

1). 当前使用的 Laravel 版本?

Laravel Framework 5.4.36

2). 当前使用的 php/php-fpm 版本?

PHP 版本:PHP 5.6.40 (cli) (built: Oct 27 2022 14:45:49)

php-fpm 版本:

3). 当前系统

CentOS 8.4

4). 业务环境

开发环境

5). 相关软件版本

2. 问题描述?

项目是前后端分离,laravel只提供接口数据。
部署时使用lnmp集成安装包,在A服务器上使用的是v1.7,B服务器上使用的是v1.9。
两个服务器的php、mysql、apache均使用相同的版本。
项目部署在一个服务器A上,可以正常运行。现在将A服务器的代码完全复制到B服务器上,并设置好vhost后,访问页面出现问题。
A服务器上,页面可以正常发送跨域ajax请求,并返回正确数据
B服务器上,则无法正常获取数据,没有响应
Chrome浏览器控制台会输出

POST 接口地址 net::ERR_EMPTY_RESPONSE

后端为防止跨域问题出现,已经增加中间件处理

<?php
namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Log;

class Cors
{
    public function handle($request, Closure $next) {
        $IlluminateResponse = 'Illuminate\Http\Response';
        $SymfonyResponse = 'Symfony\Component\HttpFoundation\Response';
        $response = $next($request);
        $headers = [
            'Access-Control-Allow-Origin' => '*',
            'Access-Control-Allow-Credentials' => 'true',
            'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, PATCH, DELETE',
            'Access-Control-Allow-Headers' => 'Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Authorization , Access-Control-Request-Headers, X-CSRF-TOKEN'
        ];

        if ($response instanceof $IlluminateResponse) {
            foreach ($headers as $key => $value) {
                $response->header($key, $value);
            }
        }

        if ($response instanceof $SymfonyResponse) {
            foreach ($headers as $key => $value) {
                $response->headers->set($key, $value);
            }
        }
        // 日志记录
        return $response;
    }
}

通过后台的mysql的监听日志可以看到,数据库完成了所有的业务查询。

在上述引用代码中,“日志记录”位置使用Log::info($response)记录变量数据,也能获取完整数据(包含中间件设置的头部,及相关业务数据)。

apache的vhost中也尝试增加了Header set Access-Control-Allow-Origin *,依然没有效果

防火墙firewall已经添加80端口。

希望能找到此问题的原因~~

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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