原生ajax请求与Promise请求
来源:互联网 发布:苹果cms整合ck播放器 编辑:程序博客网 时间:2024/05/22 11:48
- // 简单的ajax原生实现
- var url = 'https://hq.tigerbrokers.com/fundamental/finance_calendar/getType/2017-02-26/2017-06-10';
- var result;
- var XHR = new XMLHttpRequest();
- XHR.open('GET', url, true);
- XHR.send();
- XHR.onreadystatechange = function() {
- if (XHR.readyState == 4 && XHR.status == 200) {
- result = XHR.response;
- console.log(result);
- }
- }
- var url = 'https://hq.tigerbrokers.com/fundamental/finance_calendar/getType/2017-02-26/2017-06-10';
- // 封装一个get请求的方法
- function getJSON(url) {
- return new Promise(function(resolve, reject) {
- var XHR = new XMLHttpRequest();
- XHR.open('GET', url, true);
- XHR.send();
- XHR.onreadystatechange = function() {
- if (XHR.readyState == 4) {
- if (XHR.status == 200) {
- try {
- var response = JSON.parse(XHR.responseText);
- resolve(response);
- } catch (e) {
- reject(e);
- }
- } else {
- reject(new Error(XHR.statusText));
- }
- }
- }
- })
- }
- getJSON(url).then(res => console.log(res));
- 转自:http://blog.csdn.net/qq_29849641/article/details/69233788
//用于发送ajax的post请求
$.post=function (url,data,callback){
var xhr=$.int();; //调用Ajax对象
xhr.open('post','url'); //初始化,用post请求方式连接到php文件,这样不会产生缓存问题
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencode'); //设置请求头信息,本次提交的数据是字符数据
xhr.onreadystatechange=function(){ //设置Ajax对象的状态码发生改变时所触发的回调函数
if (xhr.readyState==4 && xhr.status==200) {
callback(xhr.responseText);
};
}
xhr.send(data); //发送请求,由于初始化时使用post请求方式,所以需添加post请求时所传递的函数(如果是get请求,刚为空null)
}
$.post=function (url,data,callback){
var xhr=$.int();; //调用Ajax对象
xhr.open('post','url'); //初始化,用post请求方式连接到php文件,这样不会产生缓存问题
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencode'); //设置请求头信息,本次提交的数据是字符数据
xhr.onreadystatechange=function(){ //设置Ajax对象的状态码发生改变时所触发的回调函数
if (xhr.readyState==4 && xhr.status==200) {
callback(xhr.responseText);
};
}
xhr.send(data); //发送请求,由于初始化时使用post请求方式,所以需添加post请求时所传递的函数(如果是get请求,刚为空null)
}
//jQuery封装ajax
(function () {
//用于得到一个dom对象
var $=function (id) {
return document.getElementById(id);
}
//用于得到一个ajax对象
$.init=function (){
try{return new XMLHttpRequest()}catch(e){}
try{return new ActiveXobject('Microsoft.XMLHTTP')}catch(e){}
alert('error');
}
//用于发送ajax的get请求
$.get=function(url,data,callback,type){
var xhr=$.int();
if(data!=null){
url=url+'?'+data;//有时候ajax只想传递一个过程,不需要传递参数时
}
xhr.open('get',url);
xhr.setRequestHeader("If-Modified-Since","0");
xhr.onreadystatechange=function(){
if (xhr.readyState==4 && xhr.status==200) {
if (type==null) {
type='text'; //如果没有传递type参数,让type的值默认为text
};
if (type=='text') {
callback(xhr.responseText); //返回字符串类型
};
if (type=='xml') {
callback(xhr.responseXML); //返回XML类型
};
if (type=='json'){
var str=eval('('+xhr.responseText+')'); //转成对象
callback(str); //返回json类型
}
}
}
xhr.send(null);
}
//用于发送ajax的post请求
$.post=function (url,data,callback,type){
var xhr=$.int();; //调用Ajax对象
xhr.open('post','url'); //初始化,用post请求方式连接到php文件,这样不会产生缓存问题
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencode'); //设置请求头信息,本次提交的数据是字符数据
xhr.onreadystatechange=function(){ //设置Ajax对象的状态码发生改变时所触发的回调函数
if (xhr.readyState==4 && xhr.status==200) {
if (type==null) {
type='text'; //如果没有传递type参数,让type的值默认为text
};
if (type=='text') {
callback(xhr.responseText); //返回字符串类型
};
if (type=='xml') {
callback(xhr.responseXML); //返回XML类型
};
if (type=='json'){
var str=eval('('+xhr.responseText+')'); //转成对象
callback(str); //返回json类型
}
};
}
xhr.send(data); //发送请求,由于初始化时使用post请求方式,所以需添加post请求时所传递的函数(如果是get请求,刚为空null)
}
window.$=$;
})();
//用于得到一个dom对象
var $=function (id) {
return document.getElementById(id);
}
//用于得到一个ajax对象
$.init=function (){
try{return new XMLHttpRequest()}catch(e){}
try{return new ActiveXobject('Microsoft.XMLHTTP')}catch(e){}
alert('error');
}
//用于发送ajax的get请求
$.get=function(url,data,callback,type){
var xhr=$.int();
if(data!=null){
url=url+'?'+data;//有时候ajax只想传递一个过程,不需要传递参数时
}
xhr.open('get',url);
xhr.setRequestHeader("If-Modified-Since","0");
xhr.onreadystatechange=function(){
if (xhr.readyState==4 && xhr.status==200) {
if (type==null) {
type='text'; //如果没有传递type参数,让type的值默认为text
};
if (type=='text') {
callback(xhr.responseText); //返回字符串类型
};
if (type=='xml') {
callback(xhr.responseXML); //返回XML类型
};
if (type=='json'){
var str=eval('('+xhr.responseText+')'); //转成对象
callback(str); //返回json类型
}
}
}
xhr.send(null);
}
//用于发送ajax的post请求
$.post=function (url,data,callback,type){
var xhr=$.int();; //调用Ajax对象
xhr.open('post','url'); //初始化,用post请求方式连接到php文件,这样不会产生缓存问题
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencode'); //设置请求头信息,本次提交的数据是字符数据
xhr.onreadystatechange=function(){ //设置Ajax对象的状态码发生改变时所触发的回调函数
if (xhr.readyState==4 && xhr.status==200) {
if (type==null) {
type='text'; //如果没有传递type参数,让type的值默认为text
};
if (type=='text') {
callback(xhr.responseText); //返回字符串类型
};
if (type=='xml') {
callback(xhr.responseXML); //返回XML类型
};
if (type=='json'){
var str=eval('('+xhr.responseText+')'); //转成对象
callback(str); //返回json类型
}
};
}
xhr.send(data); //发送请求,由于初始化时使用post请求方式,所以需添加post请求时所传递的函数(如果是get请求,刚为空null)
}
window.$=$;
})();
阅读全文
3 0
- 原生ajax请求与Promise请求
- 原生ajax请求与Promise请求
- Promise封装ajax请求
- ajax+promise 封装http请求
- ajax 原生请求数据
- 原生Ajax请求
- 原生/jq ajax请求
- 原生ajax POST请求
- js原生ajax请求
- 原生 Ajax 请求案例/模板
- 原生AJAX实现异步请求
- 原生js的ajax请求
- JavaScript发送原生ajax请求
- 原生JS实现ajax请求
- 原生JS封装AJAX请求
- 原生ajax请求二次封装
- Ajax异步请求原生窥探
- 原生js封装ajax请求
- HTTPS 中双向认证
- Cannot return from outside a function or method.
- 原生HTML5关于Div对象的.clientLeft、.offsetLeft、.clientX、.offsetX区分
- 靠谱程序员必备技能——重构
- ext动态进度条
- 原生ajax请求与Promise请求
- Python+Opencv进行识别相似图片
- IPC-管道(匿名管道)
- git常用命令之git push使用说明
- 模版方法模式与策略模式如何让软件开发符合“开闭原则”
- 安装Centos6.5
- okhttp上传文件时携带参数
- MediaCodec问题汇总
- MDI——单例模式