ajax

作者: 小小的白菜 | 来源:发表于2018-09-30 16:25 被阅读0次

来源:ajax常用操作及 跨域的实现原理

1 创建兼容的XMLHttpRequest对象

<script>
  // 1 创建兼容的 XMLHttpRequest 对象
  function createXMLXttpRequest() {
    let xmlHttpRequest
    if (window.XMLHttpRequest) {
      //针对FireFox,Mozillar,Opera,Safari,IE7,IE8
      xmlHttpRequest = new XMLHttpRequest()
      //针对某些特定版本的mozillar浏览器的BUG进行修正
      if (xmlHttpRequest.overrideMimeType) {
        xmlHttpRequest.overrideMimeType('text/html')
      }
    } else if (window.ActiveXObject) {
      //针对IE6,IE5.5,IE5
      //两个可以用于创建XMLHTTPRequest对象的控件名称,保存在一个js的数组中
      //排在前面的版本较新
      const activexName = ['MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
      for (let i = 0; i < activexName.length; i++) {
        try {
          //取出一个控件名进行创建,如果创建成功就终止循环
          //如果创建失败,回抛出异常,然后可以继续循环,继续尝试创建
          xmlHttpRequest = new ActiveXObject(activexName[i])
          if (xmlHttpRequest) {
            break
          }
        } catch (e) {
          
        }
      }
    }
    return xmlHttpRequest
  }
</script>

或者

const xmlHttpRequest = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject('Microsoft.XMLHTTP')

2 get()

function get() {
    const xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP')
    if(xhr) {
      xhr.open('GET', 'https://xxx.come/?username=123')
      xhr.onreadystatechange = function() {
        if(xhr.readyState === 4) {
          if(xhr.status === 200 || xhr.status === 304) {
            console.log(xhr.responseText)
          } else {
            console.log('error')
          }
        }
      }
    }
  }

3 post()

function post() {
    const xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject()
    if(xhr) {
      xhr.open('POST', 'http://test.com/', true)
      xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=gbk;')
    }
    xhr.send("keywords=手机")
    xhr.onreadystatechange = function(){
      if(xhr.readyState === 4){
        if(xhr.status === 200){
          alert('success')
        }else{
          alert('error')
        }
      }
    }
  }

相关文章

  • AJAX

    主要内容: ajax 是什么、原生ajax 写法和jQuery ajax写法。 AJAX 是什么 ajax,即As...

  • JavaScript进阶知识点--AJAX及JSON

    AJAX 关于 AJAX 什么是 AJAX AJAX 的全称是 Asynchronous JavaScript a...

  • HTML5权威指南 | 第五部分 高级功能

    三十二、使用AJAX(上) Ajax起步: 使用Ajax事件: Ajax请求的错误处理: 中止Ajax请求: 三十...

  • ajax学习笔记

    Ajax学习笔记 Ajax简介 1. Ajax是什么? Ajax : Asynochronous javascri...

  • AJAX

    一、简介 AJAX菜鸟教程 什么是 AJAX ? AJAX = 异步 JavaScript 和 XML。 AJAX...

  • js之AJAX复习

    异步交互和同步交互 什么是Ajax? Ajax的工作原理。 Ajax包含的技术: Ajax的缺陷: Ajax的核心...

  • 复习jQuery - ajax

    jQuery ajax - ajax() 方法 $.ajax({ url:'oo.php', ...

  • jQuery中Ajax请求的使用和四个步骤示例

    ajax() 方法用于执行 AJAX(异步 HTTP)请求,所有的 jQuery AJAX 方法都使用 ajax(...

  • ajax

    1、什么是ajax? 2、ajax的原理 3、ajax的核心对象 4、ajax的优点: ajax的缺点: 被jqu...

  • ajax

    Ajax 1 - 请求纯文本 Ajax 2 - 请求JSON数据 Ajax 3 - 请求Github接口 Ajax...

网友评论

      本文标题:ajax

      本文链接:https://www.haomeiwen.com/subject/kikioftx.html