封装ajax function ajaxGet(url, callback) { var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.send(); xhr.onreadystatechange = function () { if (xhr.readyState == 4 && xhr.status == 200) { callback(xhr.responseText); } } } // 调用 ajaxGet('/user/?ac=sdkIsGray', function (data) { var data = JSON.parse(data); if(data.data.sdk_is_gray===1){ localStorage.setItem('sdk_is_gray','1') var classVal = document.getElementById("sdk_body").getAttribute("class"); classVal = classVal.replace("colorful","gray"); document.getElementById("sdk_body").setAttribute("class",classVal ); }else{ localStorage.setItem('sdk_is_gray','0') var classVal = document.getElementById("sdk_body").getAttribute("class"); classVal = classVal.replace("gray","colorful"); document.getElementById("sdk_body").setAttribute("class",classVal ); } });
时间: 2024-02-14 17:09:02 浏览: 84
封装了跟后台接口沟通的ajax,还有一个获取url传递get参数的两个公共函数
好的,这里是封装了 `ajax` 的代码:
```javascript
function ajax(method, url, data, callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
callback(null, xhr.responseText);
} else {
callback(new Error('请求失败'));
}
}
};
xhr.open(method, url, true);
if (method == 'POST') {
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify(data));
} else {
xhr.send();
}
}
```
这个函数接受四个参数:
- `method`:HTTP 请求的方法,可以是 `'GET'` 或 `'POST'`。
- `url`:请求的 URL。
- `data`:POST 请求的数据,应该是一个对象。
- `callback`:请求完成后的回调函数,接受两个参数,第一个参数是错误对象,第二个参数是响应文本。
使用这个函数,你可以像这样发起一个 GET 请求:
```javascript
ajax('GET', '/user/?ac=sdkIsGray', null, function(err, data) {
if (err) {
console.error(err);
return;
}
var data = JSON.parse(data);
if (data.data.sdk_is_gray === 1) {
localStorage.setItem('sdk_is_gray', '1');
var classVal = document.getElementById('sdk_body').getAttribute('class');
classVal = classVal.replace('colorful', 'gray');
document.getElementById('sdk_body').setAttribute('class', classVal);
} else {
localStorage.setItem('sdk_is_gray', '0');
var classVal = document.getElementById('sdk_body').getAttribute('class');
classVal = classVal.replace('gray', 'colorful');
document.getElementById('sdk_body').setAttribute('class', classVal);
}
});
```
或者像这样发起一个 POST 请求:
```javascript
var formData = {
name: 'John',
age: 20,
};
ajax('POST', '/user/', formData, function(err, data) {
if (err) {
console.error(err);
return;
}
console.log('POST 请求成功');
});
```
希望这可以帮到你!
阅读全文