[# ajax
如何发出请求
- form表单action发出请求,刷新页面
- a标签的href, 刷新或者跳转
- img标签src,可以通过onload和onerror
- script标签src,可以通过动态创建script,jsonp用法
微软
IE5率先在js中引入ActiveX对象[这个东西我的确用过简单说下,在IE8中如果想调用CMD操作让IE跳往谷歌可以用这个对象],之后各大浏览器厂商模仿写出xmlhttprequest。
AJAX
AJAX异步的javascript+xml
使用ajax
var xhr = new XMLHttpRequest(); xhr.open(method, url) // 启动 xhr.onreadystatechange = function(){ if (xhr.readyState==4){ // 响应完毕 console.log(xhr.status); if(xhr.status >= 200 && xhr.status < 300) { console.log('请求成功'); var string = xhr.responseText } } } xhr.send() // 发出复制代码
封装ajax
window.$ = window.jquery; window.jquery = { ajax: function({url, method, header, body}){ return new Promise((reject, resolve) => { var xhr = new XMLHttpRequest(); xhr.open(method, url) Object.keys(header).forEach( key => { xhr.setRequestHeader(key, header[key]) }) xhr.onreadystatechange = function(){ if (xhr.readyState==4){ // 响应完毕 console.log(xhr.status); if(xhr.status >= 200 && xhr.status < 300) { reject.call(undefined, xhr.responseText) } else { resolve.call(undefined, xhr.responseText) } } } }) xhr.send(body) } } jquery.ajax().then()复制代码