Ajax学习系列——向服务器发送请求
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学习系列——向服务器发送请求的更多相关文章
- AJAX - 向服务器发送请求请求
AJAX - 向服务器发送请求请求 XMLHttpRequest 对象用于和服务器交换数据.直线电机生产厂家 向服务器发送请求 如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 ...
- 【03】AJAX 向服务器发送请求
AJAX 向服务器发送请求 创建 XMLHttpRequest 对象后,就可以向服务器发送请求了. XMLHttpRequest 对象的 open() 方法和 send() 方法用来向服务器发送请 ...
- ajax-向服务器发送请求
ajax-向服务器发送请求 1.将请求发送到服务器,使用XMLHttpRequest对象的 open() 和 send() 方法. xmlhttp. open(method,url,async ...
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
SpringMVC学习系列-后记 解决GET请求时中文乱码的问题 之前项目中的web.xml中的编码设置: <filter> <filter-name>CharacterEnc ...
- Query通过Ajax向PHP服务端发送请求并返回JSON数据
Query通过Ajax向PHP服务端发送请求并返回JSON数据 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuer ...
- 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。)
用VS2005+SQLSERVER2008开发C/S的程序,程序上线运行一段时间之后发现在某些功能偶尔出现如下的错误: 在向服务器发送请求时发生传输级错误. (provider: TCP 提供程序, ...
- android客户端向服务器发送请求中文乱码的问
android客户端向服务器发送请求的时候,并将参数保存到数据库时遇到了中文乱码的问题: 解决方法: url = "http://xxxx.com/Orders/saveorder.html ...
- System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。) .
今天使用sql server 2008 R2管理器,进行SQL查询时,频率非常高的报错: System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误. ...
- AJAX向服务器发送请求
使用 XMLHttpRequest 对象的 open() 和 send() 方法: 方法 描述 open(method,url,async) 规定请求的类型.URL 以及是否异步处理请求. metho ...
随机推荐
- 更新Android Studio,提示后直接点更新即可。gradle 两种更新方法,我用的第二种:手动添加gradle
直接更新即可. 更新完毕后,随即会让你更新gradle,但是会一直更新一直更新...... 解决方法: 第一种方法: 手动下载Android Studio 对应的 gradle版本,然后设置一下即可. ...
- Python入门之元组
一.什么是元祖 元祖是不可变类型(列表是可变类型) 为什么要设计元祖这样不可变类型?因为一旦创建了不可变类型的对象,对象内部的所有数据就不能被修改了,这样避免了 由于修改数据导致的错误.此外,对于不可 ...
- app自动化 - 元素定位不到?别慌,3大工具帮你搞定!
在日常的android app自动化测试工作当中,很多朋友在元素定位时,会遇到以下类似的报错: 然后会来问,这是啥情况? 一般情况下,都会送上以下亲切的关怀: 1)adb能识别到设备吗? 2)设备有被 ...
- Java程序员常用工具类库
有人说当你开始学习Java的时候,你就走上了一条不归路,在Java世界里,包罗万象,从J2SE,J2ME,J2EE三大平台,到J2EE中的13中核心技术,再到Java世界中万紫千红的Framework ...
- 吴裕雄--天生自然HADOOP操作实验学习笔记:pagerank算法
实验目的 了解PageRank算法 学会用mapreduce解决实际的复杂计算问题 实验原理 1.pagerank算法简介 PageRank,即网页排名,又称网页级别.Google左侧排名或佩奇排名. ...
- docker-构建建tomcat镜像并启动容器
1.下载一个tomcat8,解压好改名为tomcat并配置端口为80,删除webapps下的默认的应用,修改tomcat/bin目录下脚本的权限,chmod +x *.sh 2.路径一般放在/usr/ ...
- 线程context
线程切换的时候,要保存当前运行状态,以便后续切换回来 CONTEXT结构体保存的是一堆寄存器 两个函数 //You cannot get a valid context for a running t ...
- video-editing
1. 视频编辑 2. 视频编辑软件列表 3. 视频编辑软件比较 4. 视频转换 1. 视频编辑 https://zh.wikipedia.org/wiki/视频编辑 2. 视频编辑软件列表 https ...
- Day2-O-Coloring a Tree CodeForces-902B
You are given a rooted tree with n vertices. The vertices are numbered from 1 to n, the root is the ...
- Docker 镜像文件的导入和导出
使用save命令 保存镜像 docker save -o name_by_you.tar exist_images 将文件copy到另一台机器 使用load命令将镜像文件保存到本地仓库 docker ...