xhr.open("POST", "../servlet/testServlet?timeStamp=" + new Date().getTime(), true);

本文介绍了一个使用JavaScript的Ajax技术发送POST请求的例子。通过这个示例,读者可以了解到如何设置请求头、发送参数以及处理服务器响应的状态和返回的数据。
window.onload = function(){

document.getElementById("ok").onclick = function(){


var xhr = ajaxFunction();

xhr.open("POST", "../servlet/testServlet?timeStamp=" + new Date().getTime(), true);




//如果请求类型是POST的话,需要设置请求头部信息Content-Type
//application/x-www-form-urlencoded
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");




xhr.send("a=7&b=8");
xhr.onreadystatechange = function(){

if (xhr.readyState == 4) {
alert(xhr.status);
if (xhr.status == 200 || xhr.status == 304) {
alert("tfy");
var data=xhr.responseText;
alert(data);
}
}

}
}
}
要使用 `XMLHttpRequest` 发送 `POST` 请求到 `/logs/record` 端点,需要配置请求方法、URL,并设置适当的请求头以确保服务器能够正确解析发送的数据[^1]。以下是一个完整的示例,展示了如何使用 `XMLHttpRequest` 发送 `POST` 请求: ```javascript // 创建 XMLHttpRequest 对象 var xhr = new XMLHttpRequest(); // 配置请求方法和 URL xhr.open('POST', '/logs/record', true); // 设置请求头,指定发送的数据类型为 JSON xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8'); // 定义请求完成后的回调函数 xhr.onload = function () { if (xhr.status >= 200 && xhr.status < 300) { // 请求成功,处理响应数据 var response = JSON.parse(xhr.responseText); console.log('响应数据:', response); } else { // 请求失败,处理错误信息 console.error('请求失败:', xhr.statusText); } }; // 定义请求出错时的回调函数 xhr.onerror = function () { console.error('网络错误'); }; // 准备要发送的数据 var data = { logMessage: '这是一个测试日志记录', timestamp: new Date().toISOString() }; // 发送请求,将数据转换为 JSON 格式 xhr.send(JSON.stringify(data)); ``` ### 请求配置说明 - `xhr.open('POST', '/logs/record', true)`:使用 `open` 方法指定请求的类型为 `POST`,目标 URL 为 `/logs/record`,第三个参数 `true` 表示异步请求。 - `setRequestHeader`:设置请求头以指定发送的数据类型为 JSON,这是许多后端服务(如 Django 或 Spring Boot)默认期望的格式。 - `onload` 和 `onerror`:分别用于处理请求成功和失败的情况。 - `send`:将数据以 JSON 格式发送到服务器。 ### 跨域问题 如果 `/logs/record` 端点位于不同的域或端口上,可能会遇到跨域限制。为了解决这个问题,服务器端需要启用跨域资源共享(CORS)策略。例如,在 Java Spring Boot 项目中,可以通过添加一个 `CORSFilter` 来实现全局跨域支持[^3]。 ### 安全性 如果后端服务对请求进行了身份验证(如使用 Cookie 或 Token),还需要在请求中携带认证信息。例如,可以通过 `setRequestHeader` 添加 `Authorization` 头,或者在发送请求时附带 Cookie 信息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值