1、使用AJAX发起GET请求消息

xhr.open("GET","XX.PHP?K1=V1$K2=V2",true);

xhr.send(null);

2、使用AJAX发起POST请求消息

xhr.open("POST","XX.PHP",true);

xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

xhr.send('k1=v1&k2=v2');

请求消息的Content-Type头常用值:

text/plain : 客户端向服务器提交的请求主体是一些普通文本数据(未经编码)——很多Web服务器会直接拒绝接收这样的请求数据

 application/x-www-form-urlencoded : 客户端向服务器提交的请求主体是经过了编码的文本数据——默认情况下,HTMLForm标签会把所有的表单数据编码之后再提交给服务器

multipart/form-data : 客户端向服务器提交的请求主体中包含上传的文件

注意:HTTP协议规定:请求消息传递给服务器的数据中不能包含中文、特殊标点符号

3、使用AJAX接收服务器端返回的text响应

服务器端:header("Content-Type","text/plain");

客户端:console.log(xhr.responseText);

4、使用AJAX接收服务器端返回的HTML响应

服务器端:header("Content-Type","text/html");

客户端接收:document.getElementByxxx().innerHTML=xhr.responseText;

5、使用AJAX接收服务器返回的JavaScript响应

服务器端:header('Content-Type', 'application/javascript')

客户端接收:typeof( xhr.responseText );  //string    eva(xhr.responseText );  //把string作为js来执行

6、使用AJAX接收服务器返回的xml响应

服务器端:header('Content-Type', 'application/xml');

客户端:XML DOM,用于处理XML文档

XMLHttpRequest    DOMParser - 可以把一段XML字符串解析为一棵DOM树

7、使用AJAX接收服务器返回的json响应

JSON:原本是JS中创建的对象的“直接量”法,后来从JS中独立出来,作为一种字符串数据的表示法,被各种语言所支持。其作用于XML类似,但比XML更加轻量级、简洁、处理速度更快。

JSON格式表示字符串,有两种格式:

JSON对象字符串格式:'{ "k1":"v1",  "k2": v2 }'

JSON数组字符串格式:'[ v1,  v2,  v3... ]'

示例:异步的加载新闻列表

服务器端:

header('Content-Type: application/json');

$arr = [ ];

echo  json_encode( $arr );  //PHP数组=>JSON字符串

客户端:var jsObj =       JSON.parse( xhr.responseText ); //把JSON字符串解析为JS数组/对象

8、jQuery封装的AJAX $.ajax()

使用方法:

$.ajax( {

type: 'GET/POST/PUT/DELETE',

url: 'xx.php',

data: 'k1=v1&k2=v2' | {k1:v1,  k2:v2},

dataType: 'text/html/script/xml/json/jsonp',

beforeSend: fn,

success: fn,

error: fn,

complete: fn

} )

注意:

在jQuery提供的所有AJAX函数中,提交的数据可以有两种形式:

(1)HTTP协议规定的标准格式:  'k1=v1&k2=v2...'

(2)JS对象格式:{ k1: v1,  k2:v2 }   jQuery在发送此格式的数据之前会自动调用$.param()函数,将JS对象改为第一种格式。

关于AJAX异步请求的那些事儿(2)的更多相关文章

  1. 关于AJAX异步请求的那些事儿(1)

    1.什么事AJAX? Asynchronous Javascript And XML:异步的JS和XML,由Google2002年在GoogleSuggest应用提出,目标实现客户端和服务器“同时”运 ...

  2. ajax异步请求

    做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...

  3. spring HandlerInterceptorAdapter拦截ajax异步请求,报错ERR_INCOMPLETE_CHUNKED_ENCODING

    话不多说,直接上正文. 异常信息: Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING 问题描述: 该异常是在页面发送ajax请 ...

  4. jquery Ajax异步请求之session

    写了一个脚本,如下: $(function () { $("#btnVcode").click(function () { var receiveMobile = $(" ...

  5. ajax异步请求Response.Redirect重定向

    一个ajax异步请求报错->捕获异常->重定向错误提示页面.  一个简单的流程 结果一直搞不定.重定向无效.各种百度之. 后来突然想起 ajax的请求是不能在后台重定向的. 如果硬要重定向 ...

  6. jquery的ajax异步请求接收返回json数据

    http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...

  7. MVC&WebForm对照学习:ajax异步请求

    写在前面:由于工作需要,本人刚接触asp.net mvc,虽然webform的项目干过几个.但是也不是很精通.抛开asp.net webform和asp.net mvc的各自优劣和诸多差异先不说.我认 ...

  8. AJAX异步请求原理和过程

    AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML),它不是一种新的编程语言,而是一种使用现有标准的新方法. AJAX 基于 JavaS ...

  9. Ajax异步请求-简单模版

    <script type="text/javascript"> window.onload = function () { document.getElementByI ...

随机推荐

  1. VSCode插件MSSQL教程(昨天提了一下)

    推荐一个跨平台SQL IDE:https://docs.microsoft.com/zh-cn/sql/sql-operations-studio/download 什么数据库都木有(系统自带的不算) ...

  2. Linux 6.4 设置yum 为centOS源

    一. 删除Redhat 自带的yum // root 用户执行 rpm -aq|grep yum|xargs rpm -e --nodeps 二 .下载CentOS 的 yum 安装文件 wget h ...

  3. bzoj1150 [CTSC2007]数据备份Backup 双向链表+堆

    [CTSC2007]数据备份Backup Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2727  Solved: 1099[Submit][Stat ...

  4. 重磅发布:《阿里巴巴Android开发手册(规约)》

    1.前言 阿里巴巴于近日为广大程序员再送上重磅开春好礼:<阿里巴巴Android开发手册(规约)>.该开发规范在阿里内部经过了长期的修缮,现已总结成册,向所有移动开发者.技术爱好者开放,希 ...

  5. PHP中::的使用

    访问静态变量,静态属性,const修饰的变量.

  6. PHP网站的安全要点

    1. 删除不必要的模块 PHP随带内置的PHP模块.它们对许多任务来说很有用,但是不是每个项目都需要它们.只要输入下面这个命令,就可以查看可用的PHP模块: # php - m 一旦你查看了列表,现在 ...

  7. 轻松搭建Git服务器(Ubuntu)

    搭建Git服务器 在远程仓库节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业 ...

  8. OO(Object Oriented)

    封装.继承.多态. 封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别.封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的代码进行有 ...

  9. 未找到与命令“dotnet-ef”匹配的可执行文件

    在命令行里面执行操作的时候,报错了,网上找了一下原因 在报错的类库里面的xxx.csproj文件里面的ItemGroup里面加上一句 <DotNetCliToolReference Includ ...

  10. 计蒜客 无脑博士 bfs

    题目链接无脑博士的试管们 思路:直接模拟倒水过程即可,但是需要记忆判断当前的情况是否已经处理过.dfs和bfs都ok AC代码 #include <cstdio> #include < ...