原生ajax请求完整兼容的js
时间: 2023-11-01 10:06:44 浏览: 83
下面是一个简单的原生 AJAX 请求的示例,它使用 XMLHttpRequest 对象来发送请求和接收响应:
```javascript
function ajax(method, url, data, successCallback, errorCallback) {
var xhr = new XMLHttpRequest();
xhr.open(method, url, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
successCallback(xhr.responseText);
} else {
errorCallback(xhr.status);
}
}
};
xhr.send(JSON.stringify(data));
}
```
这个函数接受五个参数:
- `method`:HTTP 请求方法,例如 GET、POST、PUT 等。
- `url`:请求的 URL。
- `data`:要发送的数据,可以是一个普通对象或字符串。
- `successCallback`:请求成功后的回调函数,它接受一个参数,即响应内容。
- `errorCallback`:请求失败后的回调函数,它接受一个参数,即 HTTP 状态码。
使用这个函数发送一个 GET 请求的示例:
```javascript
ajax('GET', '/api/user/123', null, function(response) {
console.log(response);
}, function(status) {
console.error('Error: ' + status);
});
```
使用这个函数发送一个 POST 请求的示例:
```javascript
var data = { name: 'John', age: 30 };
ajax('POST', '/api/user', data, function(response) {
console.log(response);
}, function(status) {
console.error('Error: ' + status);
});
```
当然,这只是一个简单的示例,真正的 AJAX 请求可能会更加复杂。如果需要发送带有文件上传或者其他数据类型的请求,就需要使用更高级的技术,例如 FormData 或者二进制数据传输。
阅读全文