最前最详尽的Ajax2

一.数据类型(返回数据的处理)

xhr.responseText的返回是都是字符串,但有时候我们却需要数组类型,或者着json类型,实际后台可以传递一种伪数组,伪json的形式。但还是字符串如下例

1.[‘leo‘,‘Bob‘,‘Gati‘]

2.["name":"leo"]               如果我们typeof会发现他们实际是字符串,所以我们需要将其转变为我们需要的json和数组。

高版本浏览器js为我们提供了一个对象JSON               但在ie7下没有这个对象需要我们手动下载引入  JSON.js 可以用条件注释

方法一 JSON.parse()             将格式写好的字符串转换成为JSON或者数组

var str = ‘{"name":"huangxiaojian","age":"23"}‘

结果:

JSON.parse(str)

Object

    1. age: "23"
    2. name: "huangxiaojian"
    3. __proto__: Object

当自己使用时候json的key值一定设为双引号否则报错

方法二 JSON.stringify()             将格式写好的字符串转换成为JSON或者数组

var a = {a:1,b:2}

结果:

JSON.stringify(a)

"{"a":1,"b":2}"

其实该对象还可以用于很多地方比如数组的深度遍历,想了解可以私信

像后端传输数据

get方式

url后面添加数据用&进行连接

xhr.open(‘get‘,‘2.get.php?username=刘伟+‘&age=30,true);

get两个问题

1.当我们修改后台数据,返回的值并没有改变。

原因:浏览器存在缓存解决方法连接一个动态字符串,产生不同地址,不同地址url不同,不会调用缓存。链接一个随机数或者时间

xhr.open(‘get‘,‘2.get.php?username=刘伟&age=30&‘ + new Date().getTime(),true);

2.你会发现中文乱码

解决:编码呗

xhr.open(‘get‘,‘2.get.php?username=‘+encodeURI(‘刘伟‘)+‘&age=30&‘ + new Date().getTime(),true);

post方式

xhr.open(‘post‘,‘2.post.php‘,true);
//post方式,数据放在send()里面作为参数传递
xhr.setRequestHeader(‘content-type‘, ‘application/x-www-form-urlencoded‘);//申明发送的数据类型
post没有缓存问题      原因:post本就是用于向后台发消息
无需编码

xhr.send(‘username=刘伟&age=30‘);

时间: 2024-10-10 19:23:55

最前最详尽的Ajax2的相关文章

读书笔记 2018-3-13

Week 2 <构建之法>读书笔记 关于敏捷开发的二三感想. 本周因课程原因,并未急于对书目进行大量的阅读.而集中精读了该书敏捷过程一章,先将该章主要内容和个人感悟总结如下. 首先的问题就是,什么是敏捷流程?就我个人粗浅的理解,该敏捷的说法是相对于传统开发模式的"笨重"而言的.众所周知,对于一个软件开发项目,需要在开发前有详尽的调研,再和客户要求反复商讨后得出详尽的计划书,后续所有的开发都需要严格的按照计划书来执行.虽说整个流程显得很严谨,但确实显得有那么一点点笨重.相反,

中国VR公司的详尽名单

中国VR公司的详尽名单 <VR圈深度投资报告一:2014年以来所有VR/AR融资事件> 特征一.投资机构观望居多 尽管VR在媒体和二级市场炒得很热,但大多风险投资机构却慎于出手,以观望居多.比较活跃的投资机构有IDG.和君资本.九合创投和纪源资本等.财务投资人主要以天使轮和pre-a轮投资居多,真正出手投A.B轮的较少.原因在于 : 1.不少风险投资机构表示看不懂VR项目.不少投资机构虽已进行VR投资,但主要为跟投,其本身对于VR项目并不具备识别能力.还有部分投资机构认为VR产业尚不具备足够的

[Linux]Ubuntu13.04-Windows8HyperV虚拟安装前须知

1. ubuntu如何分区 1./swap交换分区,一般为你机器内存的两倍,少于这个容量,系统无法进入休眠. 实质是硬盘上的交换空间而非分区,所以没有格式,默认休眠将数据储存于此 可以取消(如不用swap必须再设定方可休眠)--多数有1GB内存的桌面用户只要1.5GB swap即可.2GB以上内存的很多用户实际并不需要它--注意,大量处理音频.视频.图片需要3GB以上的交换空间. 2./ 根分区,一般选择15G即可,默认ext4,如不独立划分以下介绍的分区,则其都归于此分区,即使最最新的新手也可

[Cocoa-4th] Chapter6 - NSTableView表格增删改 (详尽介绍2)

[Cocoa-4th] Chapter6 - NSTableView表格增删改 (详尽介绍2) 功能如上:NSTableView表格增删改 STEP1 Open XCode Ver4.6  New Application  在xib控件界面上加入一些控件,如图: STEP2 新建类:NSObject子类,命名为: Table_DS_Main 注意:添加协议NSTableViewDataSource,然后停止,从控件面板找到Object,放在界面窗口左边,指定这个类,然后 点击控件上的按钮,按住C

2017前端面试题之Js篇(1)

1 . 请解释事件代理 (event delegation) 当需要对很多元素添加事件的时,可以通过将事件添加到它们的父节点通过委托来触发处理函数.其中利用到了浏览器的事件冒泡机制. var delegate = function(client, clientMethod) { return function() { return clientMethod.apply(client, arguments); } } var agentMethod = delegate (client, clie

IT人员如何提升在企业里地位和价值?——新人入职如何烧旺前三把火

本文是老男孩个人公众号的第一篇文章,如果喜欢, 可加oldboy_linux,或扫结尾的二维码进行关注! http://oldboy.blog.51cto.com/2561410/1829072 技术的提升仅是量的积累,思想的提升才是质的飞跃! ------老男孩 前言:虽然本文题目是针对IT运维人员的,但其他行业的伙伴同样能从中受益! 目录 1. 重视入职后的前3个月 2. 新入职的普通员工如何烧旺三把火? 2.1 新手菜鸟如何做? 2.2 新入职的有能力的老鸟如何做? 3. 新入职的领导如何

U-boot主Makefile详尽分析

U-boot主Makefile详尽分析 主Makefile位于uboot源码的根目录下,其内容主要结构为: 1. 确定版本号及主机信息(23至48行) 2. 实现静默编译功能(48至55行) 3. 设置各种路径(56至123行) 4. 设置编译工具链(124至186行,大部分在config.mk内) 5. 设置规则(187至470行) 6. 设置与cpu相关的伪目标(480至末尾) 需要注意的是,结构顺序不代表代码执行顺序,关于代码的执行顺序以及推荐阅读顺序请移步[ U-boot配置及编译阶段流

前端面试题(JS篇)

原题地址:http://handyxuefeng.blog.163.com/blog/static/454521722013111714040259/ 好吧,最近打算换工作,所以关注比较多的是面试题,这套还不错,留下~~ 1.JS相关问题: 解释下事件代理(基础题) 解释下 JavaScript 中 this 是如何工作的(始终指向调用当前函数的对象) 解释下原型继承的原理. AMD vs. CommonJS? 什么是哈希表? 解释下为什么接下来这段代码不是 IIFE(立即调用的函数表达式):f

2017年-Web前端面试题(HTML至Nodejs)

[原]2017年-Web前端面试题(HTML → Nodejs)   出自作者小矮人Web前端,博文地址:http://www.cnblogs.com/itlkNote/  文中有少许重复问题! 第一阶段 HTML.CSS.HTML5.CSS3 1.XHTML与HTML的有何异同? 2.介绍一下CSS的盒子模型?弹性盒子模型是什么? 3.Doctype的作用?标准模式与兼容模式各有什么区别? 4.HTML5 为什么只需要写 <!DOCTYPE HTML>? 5.行内元素有哪些?块级元素有哪些?