fix(version_control): 修复版本删除功能并改进错误处理
- 设置纯文本响应头避免HTML污染 - 统一使用$message变量存储操作结果 - 改进AJAX请求处理,添加请求标识 - 清理响应数据并优化成功/失败提示 - 添加错误日志记录
This commit is contained in:
BIN
APP Store.zip
BIN
APP Store.zip
Binary file not shown.
@@ -190,14 +190,20 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['version_id'])) {
|
||||
|
||||
// 处理版本删除请求
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_version'])) {
|
||||
// 设置内容类型为纯文本
|
||||
header('Content-Type: text/plain');
|
||||
|
||||
$versionId = $_POST['version_id'];
|
||||
|
||||
// 初始化消息变量
|
||||
$message = '';
|
||||
|
||||
// 获取文件路径
|
||||
$getFilePathSql = "SELECT file_path FROM app_versions WHERE id = ?";
|
||||
$getFileStmt = $conn->prepare($getFilePathSql);
|
||||
if (!$getFileStmt) {
|
||||
log_error("获取文件路径查询准备失败: " . $conn->error, __FILE__, __LINE__);
|
||||
$error = '版本删除失败,请稍后再试';
|
||||
$message = '版本删除失败,请稍后再试';
|
||||
} else {
|
||||
$getFileStmt->bind_param("i", $versionId);
|
||||
$getFileStmt->execute();
|
||||
@@ -210,7 +216,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_version'])) {
|
||||
if (file_exists($filePath)) {
|
||||
if (!unlink($filePath)) {
|
||||
log_error("文件删除失败: " . $filePath, __FILE__, __LINE__);
|
||||
$error = '版本删除失败,请稍后再试';
|
||||
$message = '版本删除失败,请稍后再试';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -221,21 +227,20 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_version'])) {
|
||||
$deleteVersionStmt = $conn->prepare($deleteVersionSql);
|
||||
if (!$deleteVersionStmt) {
|
||||
log_error("版本删除查询准备失败: " . $conn->error, __FILE__, __LINE__);
|
||||
$error = '版本删除失败,请稍后再试';
|
||||
$message = '版本删除失败,请稍后再试';
|
||||
} else {
|
||||
$deleteVersionStmt->bind_param("i", $versionId);
|
||||
if ($deleteVersionStmt->execute()) {
|
||||
$success = '版本删除成功';
|
||||
$message = '版本删除成功';
|
||||
} else {
|
||||
$error = '版本删除失败: ' . $conn->error;
|
||||
$message = '版本删除失败: ' . $conn->error;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($success)) {
|
||||
echo $success;
|
||||
} else {
|
||||
echo $error;
|
||||
}
|
||||
// 只输出消息,不包含任何HTML
|
||||
echo $message;
|
||||
|
||||
// 确保脚本终止,不执行后续代码
|
||||
exit;
|
||||
}
|
||||
|
||||
@@ -457,19 +462,39 @@ if (!$verStmt) {
|
||||
formData.append('delete_version', 'true');
|
||||
formData.append('version_id', versionId);
|
||||
|
||||
fetch('version_control.php', { method: 'POST', body: formData })
|
||||
fetch('version_control.php', {
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
headers: {
|
||||
'X-Requested-With': 'XMLHttpRequest' // 添加AJAX请求标识
|
||||
}
|
||||
})
|
||||
.then(response => response.text())
|
||||
.then(data => {
|
||||
// 清理返回的文本,去除任何可能的HTML标签或额外空格
|
||||
const cleanMessage = data.trim();
|
||||
|
||||
// 显示操作结果
|
||||
if (cleanMessage.includes('成功')) {
|
||||
Swal.fire({
|
||||
title: '操作成功',
|
||||
text: data,
|
||||
text: '版本已成功删除',
|
||||
icon: 'success'
|
||||
}).then(() => {
|
||||
window.location.reload();
|
||||
});
|
||||
} else {
|
||||
Swal.fire(
|
||||
'操作失败',
|
||||
cleanMessage || '版本删除失败,请稍后再试',
|
||||
'error'
|
||||
).then(() => {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('删除请求错误:', error);
|
||||
Swal.fire(
|
||||
'操作失败',
|
||||
'版本删除失败,请稍后再试',
|
||||
|
||||
Reference in New Issue
Block a user