欢迎光临三门峡市万年长
详情描述

DELETE 请求可以通过多种方式使用 Ajax 发送,以下是常见的几种方法:

1. 使用原生 XMLHttpRequest

const xhr = new XMLHttpRequest();
const url = 'https://api.example.com/users/123';

xhr.open('DELETE', url, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('Authorization', 'Bearer token'); // 如果需要

xhr.onreadystatechange = function() {
    if (xhr.readyState === 4) {
        if (xhr.status === 200) {
            console.log('删除成功:', xhr.responseText);
        } else {
            console.error('删除失败:', xhr.status);
        }
    }
};

xhr.send();

2. 使用 Fetch API(现代推荐)

基本用法

fetch('https://api.example.com/users/123', {
    method: 'DELETE',
    headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer token' // 如果需要
    }
})
.then(response => {
    if (!response.ok) {
        throw new Error('删除失败');
    }
    return response.json(); // 如果返回 JSON
})
.then(data => {
    console.log('删除成功:', data);
})
.catch(error => {
    console.error('错误:', error);
});

带请求体(如果需要)

fetch('https://api.example.com/users/123', {
    method: 'DELETE',
    headers: {
        'Content-Type': 'application/json',
    },
    body: JSON.stringify({ 
        reason: "用户请求删除" 
    }) // 有些 API 允许 DELETE 带请求体
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

3. 使用 jQuery Ajax

$.ajax({
    url: 'https://api.example.com/users/123',
    type: 'DELETE',
    contentType: 'application/json',
    headers: {
        'Authorization': 'Bearer token'
    },
    success: function(data) {
        console.log('删除成功:', data);
    },
    error: function(xhr, status, error) {
        console.error('删除失败:', error);
    }
});

4. 使用 Axios(推荐)

// 基本用法
axios.delete('https://api.example.com/users/123')
    .then(response => {
        console.log('删除成功:', response.data);
    })
    .catch(error => {
        console.error('删除失败:', error);
    });

// 带配置
axios.delete('https://api.example.com/users/123', {
    headers: {
        'Authorization': 'Bearer token'
    },
    data: { // 有些 API 需要请求体
        reason: "用户请求删除"
    }
})
.then(response => {
    console.log('删除成功:', response.data);
});

// 或者使用配置对象方式
axios({
    method: 'delete',
    url: 'https://api.example.com/users/123',
    headers: {
        'Authorization': 'Bearer token'
    },
    data: {
        reason: "用户请求删除"
    }
});

5. 异步函数中使用(ES7+)

async function deleteUser(userId) {
    try {
        const response = await fetch(`https://api.example.com/users/${userId}`, {
            method: 'DELETE',
            headers: {
                'Authorization': 'Bearer token'
            }
        });

        if (!response.ok) {
            throw new Error('删除失败');
        }

        const result = await response.json();
        console.log('删除成功:', result);
        return result;
    } catch (error) {
        console.error('错误:', error);
        throw error;
    }
}

// 使用
deleteUser(123);

注意事项

请求体:根据 HTTP/1.1 规范,DELETE 请求可以带请求体,但并非所有服务器都支持。具体取决于 API 设计。

响应状态码

  • 200 OK - 删除成功,返回响应体
  • 204 No Content - 删除成功,无响应体
  • 404 Not Found - 资源不存在

跨域请求:如果是跨域请求,需要服务器设置 CORS 头:

Access-Control-Allow-Methods: GET, POST, PUT, DELETE

安全考虑:删除操作通常是敏感的,建议:

  • 使用认证(如 JWT)
  • 添加确认机制
  • 记录操作日志

示例:完整的删除函数

async function deleteResource(url, data = {}, token = null) {
    const config = {
        method: 'DELETE',
        headers: {
            'Content-Type': 'application/json',
        }
    };

    if (token) {
        config.headers.Authorization = `Bearer ${token}`;
    }

    if (Object.keys(data).length > 0) {
        config.body = JSON.stringify(data);
    }

    try {
        const response = await fetch(url, config);

        if (response.status === 204) {
            return { success: true }; // 204 无内容
        }

        if (response.ok) {
            const result = await response.json();
            return { success: true, data: result };
        }

        throw new Error(`删除失败: ${response.status}`);
    } catch (error) {
        console.error('删除错误:', error);
        return { success: false, error: error.message };
    }
}

// 使用示例
deleteResource('https://api.example.com/users/123', null, 'your-token-here')
    .then(result => {
        if (result.success) {
            console.log('删除成功');
        } else {
            console.error('删除失败:', result.error);
        }
    });

推荐使用 Fetch API 或 Axios,它们都是现代、标准化的方法,提供了更简洁的语法和更好的错误处理机制。

相关帖子
传统积木、拼图类玩具在数字时代,是否依然具有不可替代的教育价值?
传统积木、拼图类玩具在数字时代,是否依然具有不可替代的教育价值?
贫困地区人口就业培训,目前有哪些免费或低成本的实用技能课程?
贫困地区人口就业培训,目前有哪些免费或低成本的实用技能课程?
2026年使用医保电子凭证进行跨省异地就医结算,具体流程是怎样的?
2026年使用医保电子凭证进行跨省异地就医结算,具体流程是怎样的?
除了增加供给,有哪些“需求侧管理”措施能有效引导合理使用停车资源?
除了增加供给,有哪些“需求侧管理”措施能有效引导合理使用停车资源?
三门峡市殡葬服务公司一条龙办理|丧葬一站式服务,殡葬灵堂布置
三门峡市殡葬服务公司一条龙办理|丧葬一站式服务,殡葬灵堂布置
常德市正规殡葬公司|丧葬服务公司,丧事出殡服务
常德市正规殡葬公司|丧葬服务公司,丧事出殡服务
常德市营销网站建设&网站设计公司,优秀设计团队
常德市营销网站建设&网站设计公司,优秀设计团队
企业如何利用公众满意度调查结果来优化产品体验和客户服务流程?
企业如何利用公众满意度调查结果来优化产品体验和客户服务流程?
社会观念逐渐开放,非婚生育子女落户过程中可能遇到哪些现实挑战?
社会观念逐渐开放,非婚生育子女落户过程中可能遇到哪些现实挑战?
不同行业和地区的平均工资差异巨大,这是否是导致“被平均”感觉强烈的主要原因?
不同行业和地区的平均工资差异巨大,这是否是导致“被平均”感觉强烈的主要原因?
肇庆市网站建设服务公司|小视频营销推广,企业解决方案
肇庆市网站建设服务公司|小视频营销推广,企业解决方案
2026年流行的公众满意度调查报告中,通常包含哪些维度的数据分析?
2026年流行的公众满意度调查报告中,通常包含哪些维度的数据分析?
铜川市殡葬服务电话|丧事白事一条龙服务,白事跟拍录像
铜川市殡葬服务电话|丧事白事一条龙服务,白事跟拍录像
梧州市营销型网站建设&企业网站搭建,优秀开发团队
梧州市营销型网站建设&企业网站搭建,优秀开发团队
为什么专家反复建议日常使用耳机时音量最好控制在最大音量的60%以内?
为什么专家反复建议日常使用耳机时音量最好控制在最大音量的60%以内?
如何准确查询自己所在的地区是否有大豆或油菜种植的相关补贴?
如何准确查询自己所在的地区是否有大豆或油菜种植的相关补贴?
上饶市正规殡葬服务公司-白事服务,专业高效
上饶市正规殡葬服务公司-白事服务,专业高效
除了语音通话,在无法说话的情况下如何通过短信或APP报警求助?
除了语音通话,在无法说话的情况下如何通过短信或APP报警求助?
喀什丧葬一条龙服务办理|白事丧事服务,1小时上门
喀什丧葬一条龙服务办理|白事丧事服务,1小时上门