2024/8/1 13:32:45 ![]()
你还记得我前面的API么?根据之前的API编写全部对应的ajax,封装成方法写道script.js文件中。编写对应的代码,给出详细的中文使用注释。
2024/8/1 13:32:45 
好的,以下是根据之前的API编写的所有AJAX请求,并封装到一个独立的 `script.js` 文件中,附带详细的中文注释。
### script.js```javascript// script.js<script>// 定义 API 端点const API_BASE_URL = 'http://yourdomain.com/api';
// AJAX 请求封装成方法
/** * 获取用户列表 * @returns {Promise} 包含用户列表的 Promise 对象 */function getUsers() { return $.ajax({ url: `${API_BASE_URL}/users`, method: 'GET' });}
/** * 创建新用户 * @param {Object} user 新用户对象 * @returns {Promise} 包含创建结果的 Promise 对象 */function createUser(user) { return $.ajax({ url: `${API_BASE_URL}/users`, method: 'POST', contentType: 'application/json', data: JSON.stringify(user) });}
/** * 删除用户 * @param {number} userId 用户 ID * @returns {Promise} 包含删除结果的 Promise 对象 */function deleteUser(userId) { return $.ajax({ url: `${API_BASE_URL}/users/${userId}`, method: 'DELETE' });}
/** * 获取班级列表 * @returns {Promise} 包含班级列表的 Promise 对象 */function getClasses() { return $.ajax({ url: `${API_BASE_URL}/classes`, method: 'GET' });}
/** * 创建新班级 * @param {Object} classData 新班级对象 * @returns {Promise} 包含创建结果的 Promise 对象 */function createClass(classData) { return $.ajax({ url: `${API_BASE_URL}/classes`, method: 'POST', contentType: 'application/json', data: JSON.stringify(classData) });}
/** * 删除班级 * @param {number} classId 班级 ID * @returns {Promise} 包含删除结果的 Promise 对象 */function deleteClass(classId) { return $.ajax({ url: `${API_BASE_URL}/classes/${classId}`, method: 'DELETE' });}
/** * 获取课程列表 * @returns {Promise} 包含课程列表的 Promise 对象 */function getCourses() { return $.ajax({ url: `${API_BASE_URL}/courses`, method: 'GET' });}
/** * 创建新课程 * @param {Object} courseData 新课程对象 * @returns {Promise} 包含创建结果的 Promise 对象 */function createCourse(courseData) { return $.ajax({ url: `${API_BASE_URL}/courses`, method: 'POST', contentType: 'application/json', data: JSON.stringify(courseData) });}
/** * 删除课程 * @param {number} courseId 课程 ID * @returns {Promise} 包含删除结果的 Promise 对象 */function deleteCourse(courseId) { return $.ajax({ url: `${API_BASE_URL}/courses/${courseId}`, method: 'DELETE' });}
/** * 获取视频列表 * @returns {Promise} 包含视频列表的 Promise 对象 */function getVideos() { return $.ajax({ url: `${API_BASE_URL}/videos`, method: 'GET' });}
/** * 上传新视频 * @param {FormData} videoData 新视频表单数据 * @returns {Promise} 包含上传结果的 Promise 对象 */function uploadVideo(videoData) { return $.ajax({ url: `${API_BASE_URL}/videos`, method: 'POST', data: videoData, processData: false, contentType: false });}
/** * 删除视频 * @param {number} videoId 视频 ID * @returns {Promise} 包含删除结果的 Promise 对象 */function deleteVideo(videoId) { return $.ajax({ url: `${API_BASE_URL}/videos/${videoId}`, method: 'DELETE' });}
/** * 获取评论列表 * @returns {Promise} 包含评论列表的 Promise 对象 */function getComments() { return $.ajax({ url: `${API_BASE_URL}/comments`, method: 'GET' });}
/** * 删除评论 * @param {number} commentId 评论 ID * @returns {Promise} 包含删除结果的 Promise 对象 */function deleteComment(commentId) { return $.ajax({ url: `${API_BASE_URL}/comments/${commentId}`, method: 'DELETE' });}
/** * 获取用户个人资料 * @returns {Promise} 包含个人资料的 Promise 对象 */function getProfile() { return $.ajax({ url: `${API_BASE_URL}/profile`, method: 'GET' });}
/** * 更新用户个人资料 * @param {Object} profileData 个人资料对象 * @returns {Promise} 包含更新结果的 Promise 对象 */function updateProfile(profileData) { return $.ajax({ url: `${API_BASE_URL}/profile`, method: 'PUT', contentType: 'application/json', data: JSON.stringify(profileData) });} </script>```
在使用这些方法时,可以将它们导入到对应的 HTML 页面中,以下是一些示例:
### user_management.html (片段)```html<script src="path/to/script.js"></script><script> $(document).ready(function() { // 加载用户列表 getUsers().then(function(users) { $('#userTableBody').empty(); users.forEach(function(user) { $('#userTableBody').append(` <tr> <td>${user.user_id}</td> <td>${user.username}</td> <td>${user.email}</td> <td>${user.role}</td> <td> <button class="btn btn-danger btn-sm deleteUserBtn" data-id="${user.user_id}">Delete</button> </td> </tr> `); }); });
// 创建新用户 $('#createUserForm').on('submit', function(event) { event.preventDefault(); const newUser = { username: $('#newUsername').val(), email: $('#newEmail').val(), role: $('#newRole').val() };
createUser(newUser).then(function() { $('#createUserModal').modal('hide'); location.reload(); }).catch(function() { alert('Failed to create user. Please try again.'); }); });
// 删除用户 $(document).on('click', '.deleteUserBtn', function() { const userId = $(this).data('id'); deleteUser(userId).then(function() { location.reload(); }).catch(function() { alert('Failed to delete user. Please try again.'); }); }); });</script>```
其他页面如 `class_management.html`、`course_management.html`、`video_management.html` 和 `comment_management.html` 也可以类似地使用封装好的方法进行数据加载和处理。这样,所有的 AJAX 请求都集中在一个地方,便于管理和维护。