js兼容所有浏览器的ajax请求方法封装
时间: 2023-11-30 15:05:17 浏览: 40
以下是一个简单的兼容所有浏览器的ajax请求方法封装:
```javascript
function ajax(url, method, data, successCallback, errorCallback) {
var xhr = new XMLHttpRequest();
xhr.open(method, url, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
successCallback(xhr.responseText);
} else {
errorCallback(xhr.statusText);
}
}
};
xhr.send(JSON.stringify(data));
}
```
使用方法:
```javascript
ajax(
'https://example.com/api',
'POST',
{ name: 'John Doe', email: 'johndoe@example.com' },
function(response) {
console.log('Success:', response);
},
function(error) {
console.error('Error:', error);
}
);
```
说明:
- `url`:请求的URL
- `method`:请求方法,例如 `'GET'` 或 `'POST'`
- `data`:请求的数据,可以是一个 JavaScript 对象
- `successCallback`:请求成功后的回调函数,接收一个字符串参数,表示响应内容
- `errorCallback`:请求失败后的回调函数,接收一个字符串参数,表示错误信息
该封装使用了原生的 `XMLHttpRequest` 对象,可以在所有现代浏览器中使用。如果需要支持更老的浏览器,可以使用 `ActiveXObject` 对象替代。