2025-06-17 01:43:15 +00:00
|
|
|
|
<?php
|
|
|
|
|
/**
|
|
|
|
|
* MCSManager API 代理
|
|
|
|
|
* 用于转发前端请求到 MCSManager 后端 API,避免跨域问题
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
// 配置信息 - 请根据实际情况修改
|
|
|
|
|
$config = [
|
2025-07-04 23:49:18 +00:00
|
|
|
|
'api_base_url' => 'http://114.66.55.103:23333/api', // 请替换为实际的 API 基础 URL
|
|
|
|
|
'api_key' => '40d7b2d8df484458816e80c4c9d26f7e', // 重要:请替换为实际 API Key
|
2025-06-17 01:43:15 +00:00
|
|
|
|
'timeout' => 10,
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
// 处理预检请求
|
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
|
|
|
|
|
exit;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获取请求路径
|
|
|
|
|
$path = $_GET['path'] ?? '';
|
|
|
|
|
unset($_GET['path']);
|
|
|
|
|
|
|
|
|
|
// 构建API URL(自动添加api_key参数)
|
|
|
|
|
$url = "{$config['api_base_url']}/{$path}?apikey={$config['api_key']}";
|
|
|
|
|
|
|
|
|
|
// 添加GET参数(如果有)
|
|
|
|
|
if (!empty($_GET)) {
|
|
|
|
|
$url .= '&' . http_build_query($_GET);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 初始化CURL
|
|
|
|
|
$ch = curl_init();
|
|
|
|
|
curl_setopt($ch, CURLOPT_URL, $url);
|
|
|
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
|
|
|
curl_setopt($ch, CURLOPT_TIMEOUT, $config['timeout']);
|
|
|
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
|
|
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
|
|
|
|
|
|
|
|
|
|
// 添加自定义请求头
|
|
|
|
|
$headers = [
|
|
|
|
|
'X-Requested-With: XMLHttpRequest', // 添加此行
|
|
|
|
|
'Content-Type: application/json', // 确保 JSON 格式请求头
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
|
|
|
|
|
|
|
|
|
// 处理POST请求
|
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
|
|
|
curl_setopt($ch, CURLOPT_POST, true);
|
|
|
|
|
|
|
|
|
|
// 根据Content-Type处理请求体
|
|
|
|
|
$contentType = $_SERVER['CONTENT_TYPE'] ?? '';
|
|
|
|
|
if (strpos($contentType, 'application/json') !== false) {
|
|
|
|
|
// JSON格式请求体
|
|
|
|
|
$requestBody = file_get_contents('php://input');
|
|
|
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);
|
|
|
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, array_merge($headers, [
|
|
|
|
|
'Content-Length: ' . strlen($requestBody)
|
|
|
|
|
]));
|
|
|
|
|
} else {
|
|
|
|
|
// 表单格式请求体
|
|
|
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 执行请求
|
|
|
|
|
$response = curl_exec($ch);
|
|
|
|
|
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
|
|
|
|
$error = curl_error($ch);
|
|
|
|
|
curl_close($ch);
|
|
|
|
|
|
|
|
|
|
// 处理响应
|
|
|
|
|
if ($error) {
|
|
|
|
|
http_response_code(500);
|
|
|
|
|
echo json_encode([
|
|
|
|
|
'code' => 500,
|
|
|
|
|
'message' => '代理请求失败',
|
|
|
|
|
'error' => $error,
|
|
|
|
|
'api_url' => $url // 添加请求的地址
|
|
|
|
|
]);
|
|
|
|
|
} else {
|
|
|
|
|
http_response_code($httpCode);
|
|
|
|
|
// 将请求的地址添加到响应中
|
|
|
|
|
$responseJson = json_decode($response, true);
|
|
|
|
|
echo $response;
|
|
|
|
|
}
|
|
|
|
|
exit;
|
|
|
|
|
?>
|