Ajax异步请求几步曲——可直接引入

引入函数ajax(method,url,postStr,dataType="json"){

  return new Promise((resolve,reject)=>{...}

)};

function ajax(method,url,postStr,dataType="json"){
  return new Promise((resolve,reject)=>{

method: 请求方式,string类型,常取值:get   post...

url:请求地址,string类型

postStr:当method取post时需要发送给服务端的数据字符串

dataType:响应消息头,默认json,告诉浏览器是什么格式以及什么类型

1.获取xhr

var xhr = function(){  if(window.XMLHttpRequest){    return new XMLHttpRequest();  }else{    return new ActiveXObject("Microsoft.XMLHttp")  }}

2.创建请求

xhr.open(method,url,true);

3.设置请求消息头

如果method取值为post,则需修改消息头

if(method=="post"){
      xhr.setRequestHeader(
        "Content-Type", "application/x-www-form-urlencoded");
    }

  

4.设置回调并发送

xhr.onreadystatechange = function(){  if(xhr.readyState==4){    if(xhr.status==200){      if(url.indexof(".php")!=-1&&dataType.toLowerCase()=="json"){        console.log(xhr.responseText);        resolve(JSON.parse(xhr.responseText));       }else{        console.log(xhr.responseText);        resolve(xhr.responseText);      }    }else{        reject("ajax出错了"+xhr.status);    }  }  xhr.send(postStr);}

  完整代码如下,服务器PHP,用JSON解析,不同的可以相应改动一下。

 1 function ajax(method,url,postStr,dataType="json"){  //
 2   return new Promise((resolve,reject)=>{
 3     //1、获取 xhr
 4     var xhr = (function(){
 5       if(window.XMLHttpRequest){
 6         return new XMLHttpRequest();
 7       }else{
 8         return new ActiveXObject("Microsoft.XMLHttp");
 9       }
10     })();
11     //2、创建请求
12     xhr.open(method,url,true);
13
14     //4、设置请求消息头
15     if(method=="post"){
16       xhr.setRequestHeader(
17         "Content-Type", "application/x-www-form-urlencoded");
18     }
19     //3、设置回调
20     xhr.onreadystatechange=function(){
21       if(xhr.readyState == 4)
22         if(xhr.status == 200){
23           if(url.indexOf(".php")!=-1
24             &&dataType.toLowerCase()=="json"){
25             console.log(xhr.responseText);
26             resolve(JSON.parse(xhr.responseText));
27           }else{
28             console.log(xhr.responseText);
29             resolve(xhr.responseText);
30           }
31         }else
32           reject("ajax出错啦!"+xhr.status);
33     }
34     //5、发送
35     xhr.send(postStr);
36   })
37 }
时间: 2024-10-09 08:11:57

Ajax异步请求几步曲——可直接引入的相关文章

原生ajax异步请求基础知识

一.同步交互与异步交互的概念: * 同步交互:客户端向服务器端发送请求,到服务器端进行响应,这个过程中,用户不能做任何其他事情(只能等待响应完才能继续其他请求). * 异步交互:客户端向服务器端发送请求,直到服务器端进行响应,这个过程中,用户可以做其他任何事情(不等): 同步与异步的区别: * 同步交互 1.执行速度相对比较慢 2.响应的是完整的HTML页面 * 异步交互 1. 执行速度相对比较快 2. 响应的是部分数据 二.AJAX的概念:(Asynchronous JavaScript an

ajax 异步请求四个步骤

ajax异步请求详解 ajxa定义:异步的JavaScript和xml 1.XMLHttpRequst的出现才有了异步处理 2.创建XmlHttpRequest对象 var request=new XMLHttpRequest(); 注意:如果要兼容IE6以下浏览器则需要编写如下代码 var request; if(window.XMLRequest){ request=new XMLRequestHttpRequest();  //IE7.IE8.360等 }else{ request=new

如何使用angularjs实现ajax异步请求

Sample.html <!DOCTYPE html> <html ng-app="myApp"> <head> <title>form</title> <script type="text/javascript" src="js/angular.min.js"></script> </head> <body> <form name=

MVC的Ajax异步请求

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 @using (Ajax.BeginForm("GetTime","order",new AjaxOptions()           {               Confirm="你确认这么做吗?",               HttpMethod="post",               OnSuccess

MVC&amp;WebFomr对照学习:ajax异步请求

写在前面:由于工作需要,本人刚接触asp.net mvc,虽然webform的项目干过几个.但是也不是很精通.抛开asp.net webform和asp.net mvc的各自优劣和诸多差异先不说.我认为虽然mvc和webform有诸多不同,但是也只是为了达到相同的目的而在各自的机制下采取了不同的手段而已.更何况它们都是基于asp.net框架的.因此在解决mvc开发过程中的问题时,我很容易联想到在webform下同样的问题是如何解决的.以此来作为对照.我姑且把这种方法叫做迁移学习法吧.我以"小孩之

ajax 异步请求

<script type="text/javascript" > var http_request = false; function send_request(url){ http_request = false; if(window.XMLHttpRequest){ //Mozilla浏览器 http_request = new XMLHttpRequest(); if(http_request.overrideMimeType){ http_request.overr

SpringMVC环境下实现的Ajax异步请求(JSON格式数据)

一 环境搭建 首先是常规的spring mvc环境搭建,不用多说,需要注意的是,这里需要引入jackson相关jar包,然后在spring配置文件"springmvc-servlet.xml"中添加json解析相关配置,我这里的完整代码如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schem

通过jquery的ajax异步请求接收返回json数据

jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发送设置的datatype设置为jsonp格式数据或json格式都可以. 代码示例如下: $('#send').click(function () { $.ajax({ type : "GET", url : "a.php", dataType : "jsonp", success : function (data) { $.

【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回

作者:ssslinppp      时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MVC与json参考文章:[spring学习笔记-mvc-3]返回json数据-方式1  和 [spring学习笔记-mvc-4]返回json数据-方式2. 使用到的技术主要如下: Ajax:使用JQuery 提供的ajax:==>需要引入jquery.min.js文件: Spring MVC: Jso