Ajax-JS

Ajax:异步交互传输技术 ----就是用来与后台交互数据用的php

GET请求方式:经过URL地址传递,其传输数据也在URL地址中 ,通常是以字符串形式传递接收,安全性相对不过高后端

POST请求方式:经过浏览器内部传输,通常在send()方法前面要添加头文件即setRequestHeader(),数据由send()方法借由参数形式传递,传递数据格式多,安全性相对高点数组

 

发送请求(get和post的区别):浏览器

send(要发送的数据):发送请求
中文编码
缓存
POST:setRequestHeader(类型, 内容):设置请求头
"Content-Type","application/x-www-form-urlencoded”

缓存

数据类型(返回数据的处理):
服务器返回给我们的真正数据
XML、HTML、JSON
JSON的写法
Eval解析JSON的时候须要注意的地方
JSON.parse() : 字符串解析成对象

安全

后端数据的接收:
$_GET
- 经过URL传递给该脚本的变量的数组
$_POST
- 经过HTTP POST方法(表单)传递给该脚本的变量的数组
先后台键名和传输方式必须一致
数据传输方式
数据获取方式

服务器

        var xhr = null;
        try {
            xhr = new XMLHttpRequest();
        } catch (e) {
            xhr = new ActiveXObject('Microsoft.XMLHTTP');
        }
        
        xhr.open('post','2.post.php',true);
        //post方式,数据放在send()里面做为参数传递
        xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');//申明发送的数据类型
        //post没有缓存问题
        //无需编码
        xhr.send('username=刘伟&age=30');
        
        xhr.onreadystatechange = function() {
            
            if ( xhr.readyState == 4 ) {
                if ( xhr.status == 200 ) {
                    alert( xhr.responseText );
                } else {
                    alert('出错了,Err:' + xhr.status);
                }
            }
            
        }app

 

get缓存问题:dom

来源:每次都是发送同一个URL地址,发送访问请求后,会有一个缓存,以后仍是一样的一个URL地址,这时候,浏览器就会直接去读取缓存,不会再向服务器发送请求异步

解决方法:‘2.get.php?username=leo&age=30&’+new Date().getTime();或者加个Math.random()随机函数;在URL问号后面链接一个随机数时间戳

get传输中文有乱码问题: URL中传输数据,使用编码 encodeURL     ‘2.get.php?username='+encodeURI('刘伟')+'&age=30&’+new Date().getTime();

 

post方式:

xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');声明数据发送的数据类型

post方式,数据放在send()里面做为参数传递

没有中文乱码问题,由于在请求头中已经告诉后台的格式了

相关文章
相关标签/搜索