前言:
时间顺流而下,生活逆水行舟
--------------------------------正文---------------------------------
替换:str.replace('把谁替换','替换成谁');
例: var str = '内容';
str = str.replace('被替换的内容','替换以后的内容'); (替换以后的内容可以是字,也可以是标签)
document.write(str);
ajax核心:XMLHttpRequest(需要在服务器环境下)
ajax原理:
- 创建ajax对象:
不兼容IE6:
var oAjax = new XMLHttpRequest();
兼容IE678:
var oAjax = new ActiveXObject('Microsoft.XMLHTTP');
兼容写法:
if(window.XMLHttpRequest){
var oAjax = new XMLHttpRequest();
}else{
var oAjax = new ActiveXObject('Microsoft.XMLHTTP');
- 打开链接:
oAjax.open('打开方式','url?data',是否异步);
同步:一次只能做一件事
异步:同时做多件事
- 发送请求:
oAjax.send();
- 接收响应:
oAjax.onreadystatechange = function(){
判断ajax状态码
if(oAjax.readyState==4){
判断http状态码
if(oAjax.status>=200&&oAjax.status<300||oAjax.status==304){
成功
oAjax.responseText
响应文本
}else{
失败
}
}
}
get请求:
if(window.XMLHttpRequest){
var oAjax = new XMLHttpRequest();
}else{
var oAjax = new ActiveXObject('Microsoft.XMLHTTP');
oAjax.open('GET','xxx?xxx=xxx',true);
oAjax.send();
oAjax.onreadystatechange = function(){
判断ajax状态码
if(oAjax.readyState==4){
判断http状态码
if(oAjax.status>=200&&oAjax.status<300||oAjax.status==304){
成功
oAjax.responseText
响应文本
}else{
失败
}
}
}
post请求:
if(window.XMLHttpRequest){
var oAjax = new XMLHttpRequest();
}else{
var oAjax = new ActiveXObject('Microsoft.XMLHTTP');
oAjax.open('POST','url',true);
设置请求头部
oAjax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
oAjax.send(data);
oAjax.onreadystatechange = function(){
判断ajax状态码
if(oAjax.readyState==4){
判断http状态码
if(oAjax.status>=200&&oAjax.status<300||oAjax.status==304){
成功
oAjax.responseText
响应文本
}else{
失败
}
}
}
ajax状态码:
0 准备成功,未发送
1 发送成功
2 接收原始数据成功
3 解析数据成功
4 完成
HTTP状态码 (3位数)
2字头代表成功
304 重定向(Not Modify)
跨域的方法:
jsonp **(基本上用jsonp)**
设置代理
iframe
window.open('地址','打开方式');
打开方式: _self
_blank
jsonp
例如:
百度下拉:(https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a&cb=show)
其中: wd→→word 关键词
cb→→callback 回调函数
ajax封装:
function json2url(json){
var arr = [];
for(var key in json){
arr.push(key+'='+json[key]);
}
return arr.join('&');
}
function ajax(options){
options = options||{};
if(!options.url)return;
options.data = options.data||{};
options.data.t = Math.random();
options.type = options.type||'get';
var data = json2url(options.data);
if(window.XMLHttpRequest){
var oAjax = new XMLHttpRequest();
}else{
var oAjax = new ActiveXObject('Microsoft.XMLHTTP');
}
switch(options.type.toLowerCase()){
case 'get':
oAjax.open('GET',options.url+'?'+data,true);
oAjax.send();
break;
case 'post':
oAjax.open('POST',options.url,true);
oAjax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
oAjax.send(data);
break;
default:
oAjax.open('GET',options.url+'?'+data,true);
oAjax.send();
break;
}
oAjax.onreadystatechange = function(){
if(oAjax.readyState==4){
if(oAjax.status>=200&&oAjax.status<300||oAjax.status==304){
options.success&&options.success(oAjax.responseText);
}else{
options.error&&options.error(oAjax.status);
}
}
};
}
ajax({
url:'',
data:{},
type:'',
success:function(res){
alert(res);
},
error:function(err){
alert('失败:'+err)
}
});