例子:实现AJAX效果(投票例子)

后端代码

前端代码

原理是使用HTTP状态码204的特性(请求成功,但是不会返回内容,所以浏览器不会进行跳转)

例子:实现AJAX效果(投票例子2)

前端代码

原理是利用img,script等标签加载内容的特性

例子:实现AJAX效果(注册例子)

前端代码

后端代码

原理是利用iframe特性,将表单的target指向iframe后,服务器打印出来的内容会输出在iframe中

AJAX(XMLHttpRequest对象)

例子:发送GET请求

通过XMLHttpRequest对象还可以获取到响应信息里的内容

例子:发送POST请求

AJAX返回值类型

在AJAX1.0版本中AJAX的返回类型只有text和xml这两种类型

服务端返回xml数据处理

(1) 服务器响应的xml数据

(2)对xml数据进行处理

(3)处理后的xml数据

服务端返回json数据处理

(1) 服务器响应的json数据

(2) 对json数据进行处理

(3) 处理后的json数据

跨域问题

什么是跨域,跨域就是浏览器为了安全而不让不同域名之间可以进行消息通信,例如:http://www.xxx1.com不能与http://www.xxx2.com进行通信,http://www.xxx.com/xxx1不能与http://www.xxx.com/xxx2进行通信。当然并不是完全不能跨域比如<a><script><link><img>标签就能进行跨域,从其他域名网站中获取到数据。有时候我们异步到其他网站进行数据通信,这时候我们就能使用jsonp来解决,jsonp并不是什么特殊的技术,而是通过<script>能够跨域的特性,发送数据到服务器,服务器处理完数据后,返回一段JavaScript代码,通过这段代码调用本地写好的回调函数。

例子:jsonp

后端代码

前端代码

HTML5与AJAX

一般情况下有三种异步文件上传方式
(1)使用iframe上传文件
(2)使用flash上传文件
(3)使用HTML5的新API上传文件

例子:使用iframe上传文件

使用iframe上传文件大致分为以下几个步骤
(1)监听表单提交事件
(2)当表单提交时创建一个iframe,然后将表单的target指向iframe
(3)服务器上传成功后返回一段JavaScript代码,用于操作父页面的内容
前端代码

后端代码

例子:使用HTML5的FromData

前端代码

提交到后端的数据

例子:使用HTML5实现文件上传

前端代码

后端代码

上传后打印出来的信息

上传前

上传后

例子:利用xhr2新特性实现跨域

在HTML5中,AJAX的跨域有了新的规则,能否实现跨域取决于服务器的应答,服务器可以在响应的头信息中加上Access-Control-Allow-Origin这个header,它的值既可以是域名也可以是表示任意的域名)

例子:利用xhr2新特性实现大文件切割上传

后端代码

前端代码

例子:长连接技术

长连接技术主要是利用HTTP协议的特性,通过不给content-length指定长度,让HTTP连接一直不断开,实现单向长连接,使得服务器可以向浏览器一直推送消息,所以长连接技术也叫做服务器推技术。由于建立长连接会造成阻塞,所以长连接一般会配合iframe来使用。

后端代码

浏览器中显示的效果

Ajax 随笔的更多相关文章

  1. Ajax随笔

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  2. AJAX随笔1

    [1] AJAX简介   > 全称: Asynchronous JavaScript And XML   > 异步的JavaScript和XML   > AJAX就是通过JavaSc ...

  3. AJAX随笔2

    Ajax作用: 是用JavaScript向服务器发送异步请求,然后服务器给出响应,然后以XML格式的文件返回给浏览器端! 异步: 当浏览器向服务器发送请求的时候,不是整个页面刷新,而是局部刷新[局部信 ...

  4. 原生Ajax封装随笔

    XMLHttpRequest 对象用于和服务器交换数据.我们使用 XMLHttpRequest 对象的 open() 和 send() 方法: open(method,url,async) metho ...

  5. AJAX学习随笔

    AJAX名为“啊,贾克斯”,听着挺怪的哈. 主要的技术就是XMLHttpRequest对象和Javascript 度娘的解答: AJAX即“AsynchronousJavascriptAndXML”( ...

  6. php随笔2-php+ajax 实现输入读取数据库显示匹配信息

    dropbox_index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  7. 对ajax基础的掌握随笔

    原始的ajax,在第一个页面定义如下: function createAjax() { var xmlhttp; if (window.ActiveXObject) xmlhttp = new Act ...

  8. 学习随笔:Vue.js与Django交互以及Ajax和axios

    1. Vue.js地址 Staticfile CDN(国内): https://cdn.staticfile.org/vue/2.2.2/vue.min.js unpkg:会保持和npm发布的最新的版 ...

  9. Ajax与XMLHttpRequest随笔

    1.XMLHttpRequest对象 创建XHR对象:let xhr = new XMLHttpRequest(); open():启动一个请求准备发送 open()接收3个参数:请求类型('GET' ...

随机推荐

  1. ASP.NET一个页面的生命周期

    在学习ASP.NET页面生命周期前,需要先了解之前的ASP.NET的基本运行机制,在理解ASP.NET基本运行机制原理后,下面将介绍ASP.NET的生命周期中,页面从创建到处理结束的过程中ASP.NE ...

  2. 页面加载之window.onload=function(){} 和 $(function(){})的区别

    通用的页面加载js有四种方式: 1.window.onload = function(){}; —-js 2.$(window).load(function(){});——Jquery 3.$(doc ...

  3. PAT 1101 Quick Sort[一般上]

    1101 Quick Sort(25 分) There is a classical process named partition in the famous quick sort algorith ...

  4. libsvm使用

    先挖个坑,有空重写svm_scale, svm_train, svm_predict几个代码,给的实在写的不敢恭维 package org.ml.svm; import java.io.File; i ...

  5. [LeetCode] 627. Swap Salary_Easy tag: SQL

    Given a table salary, such as the one below, that has m=male and f=female values. Swap all f and m v ...

  6. Object-C-Foundation-NSNuber

    NSNumber 是一个数值类型封装起来的数值. 装箱:基础类型->对象类型 NSNumber *number=[NSNumber numberWithInt:12]; 拆箱:对象类型-> ...

  7. JSON自动生成相关类

    开源项目地址:https://jsonclassgenerator.codeplex.com/SourceControl/latest 太好用了,这个

  8. 查看.mobileprovision 详细信息

    .mobileprovision 用诸如sublime 等工具是无法打开. 可以通过shell命令查看: security cms -D -i 某某.mobileprovision

  9. 左连接LEFT JOIN 连接自己时的查询结果测试

    #左连接LEFT JOIN 连接自己时的查询结果测试 #左连接LEFT JOIN 连接自己时的查询结果(都会出现两个重复字段),两个表都有as后只能查询相等条件merchant_shop_id非nul ...

  10. SNMP学习笔记之Centos7配置SNMP服务

    0x00 安装yum源安装SNMP软件包 1.yum源安装SNMP服务: yum -y install net-snmp net-snmp-utils 2.查看SNMP版本号: snmpd -v 0x ...