在html页面中封装一个函数,调用该函数可以拦截页面的原请求,并发送一个新请求
时间: 2024-02-24 22:57:44 浏览: 64
可以使用 XMLHttpRequest 对象封装一个函数,在函数中可以拦截页面的原请求,并发送一个新请求。
以下是一个示例函数:
```javascript
function sendNewRequest(url, data, callback) {
// 创建 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();
// 拦截页面的原请求
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
// 发送新请求
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(JSON.stringify(data));
}
};
// 发送原请求
xhr.open("GET", document.location.href, true);
xhr.send();
// 回调函数
xhr.onload = function() {
callback(xhr.responseText);
};
}
```
调用该函数时,需传入新请求的 URL、数据和回调函数。例如:
```javascript
sendNewRequest("http://example.com/newRequest", {key: "value"}, function(response) {
console.log(response);
});
```
该函数会先发送原请求,然后在原请求成功响应后发送新请求,并在新请求成功响应后调用回调函数。注意,该函数只是一个示例,实际使用时需根据具体需求进行修改和优化。
阅读全文