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 ...
随机推荐
- uniGUI 应用程序体系结构(11)
下图表示 uniGUI 服务器的内部结构. 每个 uniGUI 服务器都有一个ServerModule的副本, 每台服务器创建一次, 同时根据用户活动动态创建和销毁多个Session. uniGUI ...
- 窥探QQ基础数据库架构演变史
作为腾讯最核心最基础的后台服务之一,QQ基础数据库是存储QQ用户帐户信息和关系链信息的海量集群,它承载了百万级每秒的访问量.十亿级的账户数.百亿级关系链.如此大规模的集群,它是如何从300万的数量级一 ...
- Victor and String[Bestcoder #52 1004](回文树)
题目描述 Victor喜欢玩字符串.他认为一个字符串是迷人的,当且仅当字符串是回文的.Victor想玩n次.每次他都会做以下四种操作中的一种.操作1:在字符串的开头添加一个字符 c.操作2:在字符串的 ...
- maven更新JRE更改JSE1.5
1. [代码]在maven的配置文件settings.xml中的<profiles>标签里添加如下代码,设置默认JRE编译版本为1.7 <profile> <id> ...
- 如何在linux中解压.rar文件
在liunx下原本是不支持rar文件的,需要安装liunx下的winrar版本 步骤: 1.http://www.rarsoft.com/rar/rarlinux-4.0.1.tar.gz 从这个网址 ...
- 在linux环境中配置tomcat
1.将tomcat文件上传到linux服务器上,并且解压文件. 2.创建文件夹 mkdir /usr/local/solr (这个文件夹,根据自己的喜好来创建) 3.将解压好的tomcat文件复制到 ...
- 生成MyEclipse6.5&7.5&8.5 注册机源码
分类: java技术2010-09-30 21:46 26638人阅读 评论(6) 收藏 举报 myeclipsejavastringimportinputbyte 生成MyEclipse8.5注册码 ...
- firewalld学习-zone的使用和配置
原文地址:http://www.excelib.com/article/290/show zone文件标签名词解释 target:目标,这个前面学生也已经给大家介绍过了,可以理解为默认行为,有四个可选 ...
- HiBench成长笔记——(5) HiBench-Spark-SQL-Scan源码分析
run.sh #!/bin/bash # Licensed to the Apache Software Foundation (ASF) under one or more # contributo ...
- 关于Android 的内存泄露及分析(转)
一. Android的内存机制Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似.程序员通过new为对象分配内存,所有对象在java堆内分配空间:然而对象的释 ...