Ajax基础--get、post理解

一、客户端和服务器端

客户端:自己的本地电脑
file://本地文件传输协议(访问本地计算机的文件)

服务器:远程的电脑
http://www.baidu.com/index.html:访问百度电脑上某一个文件
1.PHP变量
2.索引数组和关联数组
3.json_encode()将PHP转换为JSON字符串
in_array(值,数组)判断值是否在数组中

wamp环境:
C:\wamp\www:当前localhost网站的主目录(允许用户访问的目录)
xampp环境:
c:xampp\htdocs:当前localhost网站的主目录(允许用户访问的目录)

***迫切注意:千万不要让PHP的路径中含有中文

二、两种不同请求

光明正大->访问服务器的过程:
浏览器的地址栏中输入网址,浏览器会根据地址去对应的服务器获取HTML,CSS,JS,图片和音视频等资源,将获取的内容解析并输出,就获取到我们看到的页面

偷偷摸摸->访问服务器的过程:
浏览器偷偷的去服务器获取数据,将获取的数据交给JS进行进一步加工,获取到我们想要的结果(百度搜索,判断用户名是否存在,新浪网站动态加载新闻,瀑布流)

三、AJAX理解

AJAX:偷摸访问就是AJAX的实际过程
(* )具体理解:浏览器没有被刷新,而页面的内容动态改变

优点:
1.与服务器进行异步通讯,“按需索取”,减轻服务器的压力
2.加载资源减少,用户等待时间降低,提升用户体验

缺点:
1. 没有history功能
2. 不安全,返回的数据有可能被窃取
3. 搜索引擎不友好

四、AJAX具体介绍

Async JavaScript And XML:异步JavaScript和XML

4.1 前后台交流数据:XML和JSON:用户数据传输和保存
HTML:超文本标记语言
XML:可扩展标记语言(自定义标签)只是为了存储和传输数据
<?xml version="1.0" encoding="ISO-8859-1"?>
<article>
    <title>潘金莲和西门庆的故事</title>
    <author>孙浩</author>
    <time>2016-10-13</time>
    <content>文章内容</content>
</article>
document.getElementsByTagName('username');
<person>
    <username>zhangsan</username>
    <age></age>
    <sex></sex>
</person>

JSON格式:
{
“title”:”潘金莲和西门庆的故事”,
“author”:”孙浩”,
“time”:”2016-10-13”,
“content”:”文章内容”
}

4.2 具体过程:分get请求和post请求
明着:在浏览器地址栏中输入地址,请求数据
偷偷请求:创建XMLHttpRequest请求对象,到达服务器请求数据,然后返回获取的数据

==================GET请求====================

// 1.创建XMLHttpRequest请求对象
    var xmlhttp = new XMLHttpRequest();

// 2.配置
    xmlhttp.open('GET',url,true);

// 3.发送
    xmlhttp.send();

// 4.监听是否成功
    xmlhttp.onreadystatechange = function(){
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        console.log(xmlhttp.responseText);
    }
}
==================GET请求==========================

==================POST请求==========================
// 1.创建请求对象
var xml = new XMLHttpRequest();

// 2.配置
xml.open('POST', '5.php', true);

// 3.发送请求
// post发送必须设置头信息(如果post请求不设置头信息,后台接收不到发送的数据)
xml.setRequestHeader("Content-type","application/x-www-form-urlencoded");
// 将发送的数据放在send中
xml.send('username=songchao');

// 4.监听发送的过程
xml.onreadystatechange = function(){
    if (xml.readyState == 4 && xml.status == 200) {
        alert(xml.responseText);
    }
}

==================POST请求==========================

4.3封装AJAX的GET请求
function get(url,callback){
// 1.创建XMLHttpRequest请求对象
var xmlhttp = new XMLHttpRequest();

    // 2.配置
    xmlhttp.open('GET',url,true);

    // 3.发送
    xmlhttp.send();

    // 4.监听是否成功
    xmlhttp.onreadystatechange = function(){
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            callback(xmlhttp.responseText);
        }
    }
}

封装AJAX的POST请求
function post(url,data,callback){
// 1.创建请求对象
var xml = new XMLHttpRequest();

    // 2.配置
    xml.open('POST', url, true);

    // 3.发送请求
    // post发送必须设置头信息(如果post请求不设置头信息,后台接收不到发送的数据)
    xml.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    // 将发送的数据放在send中
    xml.send(data);

    // 4.监听发送的过程
    xml.onreadystatechange = function(){
        if (xml.readyState == 4 && xml.status == 200) {
            callback(xml.responseText);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值