zoukankan      html  css  js  c++  java
  • Ajax-JS

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

    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);
                    }
                }
                
            }

    get缓存问题:

    来源:每次都是发送同一个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()里面作为参数传递

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

  • 相关阅读:
    CF1480
    网络编程中常见地址结构与转换(IPv4/IPv6)
    inet_pton, inet_ntop
    mktime 夏令时
    C/C++中volatile关键字详解
    STL之vector容器详解
    Linux学习--gdb调试
    Linux编程基础——GDB(设置断点)
    FTP模式简式:PORT/PASV/EPRT/EPSV
    strchr和strstr 函数
  • 原文地址:https://www.cnblogs.com/backpacker-lzf/p/4782860.html
Copyright © 2011-2022 走看看