1、如何发送请求?

如果需要向服务器发送请求,我们使用的是XMLHttpRequest对象中的open()和send()方法。

var xhr = new XMLHttpRequest();//具体创建对象方法可以参考我的上一篇博客。
xhr.open("GET","http://www.baidu.com",true);
xhr.send();

open(method,url,async)函数参数介绍:

  • method:请求的类型;只可能是GET或POST;
  • url:服务器地址或请求的文件在服务器的位置;
  • async:true(异步请求)或false(同步请求)

send(string)函数参数介绍:

  • string:仅用于POST请求,表示请求携带的数据,必须转换成字符串类型才可以发送请求。

2、使用GET还是POST?

和POST相比,GET更简单而且更快,大部分情况下使用的都是GET请求,默认请求类型也是GET,POST请求适用于以下情况:

  • 无法使用缓存文件(更新服务器上的文件或数据库)
  • 向服务器发送大量数据(数据量大使用POST方便,因为POST没有数据类限制)
  • 发送包含未知字符的用户输入时,POST比GET更稳定也更可靠。

带参数的GET、POST请求实例:

//GET请求
xhr.open("GET","/Login?username=root&password=root",true);
xhr.send();
//POST请求
xhr.open("POST","/Login",true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");//向请求添加HTTP头,固定写法。
xhr.send("username=root&password=root");

3、true(异步)还是false(同步)?

下面给大家介绍一个场景,可以更好的理解同步和异步的区别:

一个人在网上购买了一个东西,如果他一直在家等,在这个期间,老板让他去上班不去,一直等到快递到了之后才去干其他的事情,这就是同步;如果他先去上班,等到快递到了再去拿,这就是异步。

同步和异步的区别就是如此:是一直等待一个请求完成才去干别的事情还是在请求未完成时就去干别的事情等待请求完成。

  • XMLHttpRequest对象如果要用户Ajax的话,必须使用异步请求,即async设置为true

async = true

当使用异步请求时,请规定在相应处于onreadystatechange事件中的就绪状态时执行的函数,实例如下:

xhr.onreadystatechange=function() {
if (xhr.readyState==4 && xhr.status==200) {
document.getElementById("myDiv").innerHTML=xhr.responseText;
}
}
xhr.open("GET","/GetInfo",true);
xhr.send();

readyState和status

async = false

在发送同步请求时,请不要写onreadystatechange函数,直接把代码放在send方法下面即可

xhr.open("GET","/GetInfo",false);
xhr.send();
document.getElementById("myDiv").innerHTML=xhr.responseText;

Ajax学习系列——向服务器发送请求的更多相关文章

  1. AJAX - 向服务器发送请求请求

    AJAX - 向服务器发送请求请求 XMLHttpRequest 对象用于和服务器交换数据.直线电机生产厂家 向服务器发送请求 如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 ...

  2. 【03】AJAX 向服务器发送请求

    AJAX 向服务器发送请求   创建 XMLHttpRequest 对象后,就可以向服务器发送请求了. XMLHttpRequest 对象的 open() 方法和 send() 方法用来向服务器发送请 ...

  3. ajax-向服务器发送请求

    ajax-向服务器发送请求 1.将请求发送到服务器,使用XMLHttpRequest对象的 open() 和 send() 方法.     xmlhttp. open(method,url,async ...

  4. SpringMVC学习系列-后记 解决GET请求时中文乱码的问题

    SpringMVC学习系列-后记 解决GET请求时中文乱码的问题 之前项目中的web.xml中的编码设置: <filter> <filter-name>CharacterEnc ...

  5. Query通过Ajax向PHP服务端发送请求并返回JSON数据

    Query通过Ajax向PHP服务端发送请求并返回JSON数据 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuer ...

  6. 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。)

    用VS2005+SQLSERVER2008开发C/S的程序,程序上线运行一段时间之后发现在某些功能偶尔出现如下的错误: 在向服务器发送请求时发生传输级错误. (provider: TCP 提供程序, ...

  7. android客户端向服务器发送请求中文乱码的问

    android客户端向服务器发送请求的时候,并将参数保存到数据库时遇到了中文乱码的问题: 解决方法: url = "http://xxxx.com/Orders/saveorder.html ...

  8. System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。) .

    今天使用sql server 2008 R2管理器,进行SQL查询时,频率非常高的报错: System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误. ...

  9. AJAX向服务器发送请求

    使用 XMLHttpRequest 对象的 open() 和 send() 方法: 方法 描述 open(method,url,async) 规定请求的类型.URL 以及是否异步处理请求. metho ...

随机推荐

  1. Indexed (materialized) views in SQL Server,different with Oracle (materialized) views

    Thanks to MS sql could have materialized views ,similar with oracle MVs, using indexed views. what i ...

  2. red hat 7、centos7的root密码破译

    一.在开机画面时按"E". 二.找到linux16开头的这段,在段尾添加空格"rd.break"然后按Ctrl+x进入系统紧急救援模式. 三.新的界面出现命令行 ...

  3. rar 配合 python 实现 excel密码保护 破解

    基本流程为,将excel 格式 改为rar, 然后用rar软件打开, 将 xl -> worksheet -> sheet*.xml 做下修改, 把sheet*.xml 里面的密码保护字段 ...

  4. Android_实验小心得_持续补充中......

    1.LineLayout布局控件宽度百分比显示 其中,宽度百分比 = 控件权重 / 所在parent中所有控件权重和 <LinearLayout android:layout_width=&qu ...

  5. IDEA中maven工程打包时使用跳过test模式

  6. .net设置浏览器缓存和跨域的几种方法

    .自定义过滤器属性 public class NoCacheAttribute : FilterAttribute, IActionFilter { public void OnActionExecu ...

  7. English-Phonics

    English-Phonics 1. 音节 1.1 字组 1.2 音节概述及分类 1.3 音节的划分 2. 元音字组的自然发音 2.1 元音字母 2.2 元音字母的长音 2.3 元音字母+r 2.4 ...

  8. httpclient访问接口步骤

    1. 创建HttpClient对象. 2. 构造Http 请求对象. 3. 执行HttpClient对象的execute方法,将Http请求对象作为该方法的参数. 4. 读取execute方法返回的H ...

  9. js select下拉框下拉跳转代码

    下拉跳转原理很简单这个用到了select的onchangeg事件,只要这里改变我们就获取select值直接location.href=this.value即可. <select name=&qu ...

  10. 常见加密解密 -- pycryptodomex库

    安装 windows pip install pycryptodomex ubuntu pip install pycryptodome 加密方式 单向加密:MD5 只能对数据进行加密,而不能解密 对 ...