XMLHttpRequest对象是ajax编程的基础,用于发送请求(数据)与服务端进行交互。

目前主流浏览器都内置了XMLHttpRequest对象。

浏览器会使用XMLHttpRequest对象来创建Ajax请求。

XMLHttpRequest对象的方法

方法 说明
open(method, url, async) 指定请求类型
method: 请求类型: GET 或 POST
url: 服务器URL
async: true (asynchronous)异步  或 false (synchronous) 同步
send() 发送请求到服务端
send(string) 发送请求到服务端
setRequestHeader(header, value)

添加一个请求头
header请求头名
value请求头值

采用GET还是POST

methond请求有GET和POST,应该选择哪种呢?

GET比 POST 更简单、更快, 并且可以在大多数情况下使用。

但是, 在下列情况下始终使用 POST 请求:

  • 更新服务器上的数据。
  • 向服务器发送大量数据 (POST 没有大小限制)。
  • 发送用户输入 (可以包含未知字符), POST 比获取更健壮、更安全。

采用异步还是同步

通过异步发送, JavaScript 不必等待服务器响应, 而是可以:

  • 在等待服务器响应时执行其他脚本
  • 响应就绪后处理响应
1
xhttp.open("GET", "ajax_test.jsp", true);

open () 方法的异步参数设置为 true表示采用异步:

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
<script>
    function loadDoc() {
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          document.getElementById("demo").innerHTML =
          this.responseText;
        }
      };
      xhttp.open("GET", "ajax_info.txt", true);
      xhttp.send();
    }
</script>

第一步:创建一个XMLHttpRequest对象实例

第二步:xhttp.open("GET", "ajax_info.txt", true);  准备处理GET请求,请求地址是ajax_info.txt

第三步:发送请求,xhttp.send();

第四步:根据请求返回的状态,实现不同的响应。

跨域 XMLHttpRequest对象的更多相关文章

  1. 支持JSONP跨域的对象

    支持JSONP跨域的对象 1:img 2:iframe 3:link 4:script 为什么,JSONP 最终选择是 script 实现呢?度娘来也! 平常我们进行JSONP请求数据,因为 json ...

  2. JavaScript权威设计--跨域,XMLHttpRequest(简要学习笔记十九)

    1.跨域指的是什么? URL 说明 是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a. ...

  3. AJAX-CORS 跨域

    1.CORS就是一套AJAX跨域问题的解决方案. 2.CORS的原理: CORS定义一种跨域访问的机制,可以让AJAX实现跨域访问. 3.CORS浏览器支持情况: Chrome 3+ Firefox ...

  4. XMLHTTPRequest对象不能跨域获取数据?!

    写了一小段代码,是用XMLHTTPRequest对象来获取数据的,在本地服务器中,运行的很顺利,但是转向实际服务器(实质上就是转向http://gumball.wickedlysmart.com获取一 ...

  5. Cross-origin resource sharing JSON with Padding 同源策略 JSONP 为什么form表单提交没有跨域问题,但ajax提交有跨域问题? XMLHttpRequest and the Fetch API follow the same-origin policy 预检请求(preflight request)

    https://zh.wikipedia.org/wiki/跨来源资源共享 跨来源资源共享(CORS)是一份浏览器技术的规范,提供了 Web 服务从不同域传来沙盒脚本的方法,以避开浏览器的同源策略[1 ...

  6. xmlHttpRequest 跨域和上传或下载进度条

    跨域 XMLHttpRequest 请求 普通网页能够使用XMLHttpRequest对象发送或者接受服务器数据, 但是它们受限于同源策略. 扩展可以不受该限制. 任何扩展只要它先获取了跨域请求许可, ...

  7. js中几种实用的跨域方法原理详解(转)

    今天研究js跨域问题的时候发现一篇好博,非常详细地讲解了js几种跨域方法的原理,特分享一下. 原博地址:http://www.cnblogs.com/2050/p/3191744.html 下面正文开 ...

  8. js_跨域

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  9. js中几种实用的跨域方法原理详解

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

随机推荐

  1. Django实战(一)-----用户登录与注册系统1(环境搭建)

    一.背景 学了一段时间的语法,总感觉入不了门,所以找点小项目练练手,项目来自网络. 二.创建虚拟环境,并安装Django 使用Python中的virtualenv搭建一个mysite_env全新的环境 ...

  2. java的引用

    一.值类型与引用类型 1.变量初始化 int num = 10; String str = "hello"; num是int基本类型变量,值就直接保存在变量中.str是String ...

  3. CentOS6源码安装VSFTPD3

    还是碰到老问题:安全扫描,由于CentOS6上VSFTPD最高支持到V2.2.2,目前已经是官方支持的最新版本(发布了几年...) 但有安全漏洞,又没法通过限制访问进行控制,只能想办法升级到最新版本了 ...

  4. Nginx range filter模块数字错误漏洞修复 (Nginx平滑升级) 【转】

    对线上生产环境服务器进行漏洞扫描, 发现有两台前置机器存在Nginx range filter模块数字错误漏洞, 当使用nginx标准模块时,攻击者可以通过发送包含恶意构造range域的header ...

  5. 关于apache配置映射端口

    step1.打开httpd.conf找到Listen 80这一行在后面添加Listen 8080Listen 8001Listen 8002Listen 8003也就是意味着每个项目占用一个端口,就像 ...

  6. jquery获取、设置、删除cookie

    获取cookie: function getCookie(cname) { var name = cname + "="; var ca = document.cookie.spl ...

  7. 004_wireshark专题

    一.常用的wireshark搜索语法 (1) http.request.uri contains "admin/activities" #搜索URL包含"admin/ac ...

  8. nginx或者squid正向代理实现受限网站的访问

    项目背景:公司商务同事需要操作合作方的后台,但是这个后台做了限制(安全考虑只对指定IP放行),刚好公司是adsl拨号,经常更换IP 需求:让商务同事不要经常给IP到合作方去添加白名单 于是想到了做正向 ...

  9. C++编程题

    1.不用系统提供的字符串转int的功能,将一个字符串转换为对应的值 #include <iostream> using namespace std; static int StringTo ...

  10. HDU 1796 (容斥原理)

    容斥原理练习题,忘记处理gcd 和 lcm,wa了几发0.0. #include<iostream> #include<cstdio> #include<cstring& ...