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;

转载于:https://www.cnblogs.com/guo-xu/p/10506931.html

Ajax学习系列——向服务器发送请求相关推荐

  1. 使用$.ajax向服务器发送请求

    使用$.ajax向服务器发送请求 html <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...

  2. [转]android之Apache Http——向服务器发送请求的同时发送参数

    android之Apache Http--向服务器发送请求的同时发送参数 使用Get方法提交: 其他步骤与上一节的操作相符,只是在传送地址的时候发送参数的格式如下: //Sname和Sage是实际的数 ...

  3. 使用$.post和$.get向服务器发送请求

    使用.post和.post和.post和.get向服务器发送请求 HTML <!DOCTYPE html> <html> <head> <meta chars ...

  4. 微信小程序API——向服务器发送请求

    在微信小程序中,我们可以通过微信的API与服务器进行数据传递,接下来我会详细介绍一下wx.request的用法. 首先给出前端代码,我们定义一个按钮,绑定点击事件,用于给服务器发送请求.当服务器返回数 ...

  5. 我的AJAX 学习系列文章

    我最近学习AJAX 的笔记 AJAX 学习笔记[一] 简单的异步通信示例 AJAX 学习笔记[二] 我编写的AJAX 测试代码示例 AJAX 学习笔记[三] get 与post 模式的区别 AJAX ...

  6. Okhttp 向服务器发送请求(请求头,表单,post json数据)...

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qingfeng812/article/details/52130861 项目地址:https://g ...

  7. html向服务器发送请求有哪些方法,HTTP协议客户端是如何向服务器发送请求

    一.HTTP协议解读 HTTP协议:超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议. 所有的HTML文件都必须遵守这个标准.设计HTTP最 ...

  8. 使用esp8266 wifi芯片和DFRduino开发板(Arduino也可以),向自己的服务器发送请求(尽可能详细的说明)

    研究过嵌入式方面的人都应该了解 esp8266 wifi芯片,前段时间接触一个小竞赛,需要一块传输数据给服务器的模块,毫不犹豫选择了esp8266,可能是自己孤陋寡闻吧...  进入正题 1. 开发环 ...

  9. 【Python学习】http网站发送请求

    方法一:requests 官方文档 https://pypi.org/project/requests/ Requests模块是一个用于网络请求的模块,主要用来模拟浏览器发请求.其实类似的模块有很多, ...

最新文章

  1. 自建ELK vs 日志服务(SLS)全方位对比
  2. idea每次都要配置tomcat_电脑每次开机时间都不对?电脑每次开机都要重新设置时间解决方法...
  3. VC6生成随机浮点数、C++11的random头文件以及Dev C++支持C++11
  4. Oracle 常用语句
  5. java中国象棋网络对弈,java课程设计---中国象棋对弈系统
  6. Android 游戏开发之主角的移动与地图的平滑滚动(十五)
  7. 在Python中处理大型文件的最快方法
  8. 安装php-zbarcode的步骤方法
  9. 几个学习git的地方
  10. Meta分析在生态环境领域里的应用
  11. 关灯游戏 Lights out (一)(极速求解)
  12. 攻防世界misc——flag_universe
  13. 2020淘宝双11最强星秀猫怎么玩 怎么退出队伍你知道吗
  14. 演讲的思路锻炼,逆向思维需要刻意练习吗?
  15. wifi共享大师开启失败发射功能失败
  16. HMAC和密钥导出(HMAC and Key Derivation)
  17. Zoom会议多开 or 同时加入多个Zoom Meeting
  18. STM32F103ZET6开发板实现跑马灯实验
  19. 驱动开发笔记1—内核中的事件、进程、线程、自旋锁
  20. UFT 12 – Top 5 New Features you are going to Love

热门文章

  1. 用户体验设计案例分析
  2. MySQLdb的安装
  3. Ubuntu 14.04 修改时区
  4. 获取组件的方式(方法)
  5. ×××站点的路由(隧道、接口)模式和策略模式
  6. JavaScript实用技巧(一)
  7. CCNP中单区域OSPF详解(第一部分)
  8. 做好MSSQL保卫战之xp_cmdshell
  9. Spark的三种伪分布式方式
  10. RuntimeError: Model class paypal.standard.ipn.models.PayPalIPN doesn't declare an explicit app_label