false, 'error' => '未授权']); exit(); } $role = $_SESSION['role'] ?? ''; if ($role !== '班主任') { http_response_code(403); echo json_encode(['success' => false, 'error' => '权限不足']); exit(); } // 只接受 POST if ($_SERVER['REQUEST_METHOD'] !== 'POST') { http_response_code(400); echo json_encode(['success' => false, 'error' => '无效请求']); exit(); } $stepVersion = $_GET['version'] ?? ''; if (empty($stepVersion)) { http_response_code(400); echo json_encode(['success' => false, 'error' => '缺少版本号参数']); exit(); } // 从 session 获取 JWT token $token = $_SESSION['jwt_token'] ?? ''; if (empty($token)) { http_response_code(401); echo json_encode(['success' => false, 'error' => '会话已过期,请重新登录']); exit(); } // 调用后端 API $apiUrl = API_BASE_URL . '/api/upgrade/step'; $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $apiUrl, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => json_encode(['version' => $stepVersion]), CURLOPT_TIMEOUT => API_TIMEOUT, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . $token, 'Content-Type: application/json' ], CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => 0 ]); $apiResponse = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if (empty($apiResponse)) { http_response_code(500); echo json_encode([ 'success' => false, 'version' => $stepVersion, 'error' => '无法连接升级服务' ]); exit(); } $result = json_decode($apiResponse, true); if (!$result) { http_response_code(500); echo json_encode([ 'success' => false, 'version' => $stepVersion, 'error' => '升级服务返回数据格式错误' ]); exit(); } // 后端返回非200或 success=false 时,提取实际错误信息 if ($httpCode !== 200 || !isset($result['success']) || !$result['success']) { $errorMsg = $result['message'] ?? ($result['error'] ?? '升级失败'); http_response_code(500); echo json_encode([ 'success' => false, 'version' => $stepVersion, 'error' => $errorMsg ]); exit(); } // 转发后端返回的数据 $data = $result['data'] ?? []; echo json_encode($data);