• ajax异步 —— javascript


    目录

    ajax是什么

    作用:不必重新加载整个页面,更新部分页面内容。

    大概使用过程:通过后台提供的数据接口,ajax获取数据,动态修改视图层。

    原生ajax

    将ajax请求封装成一个函数,可以传参,选择请求类型,以及成功后的回调函数。

    /*
        url: 请求地址,
        data: 请求参数,
        method: 请求类型,
        success: 请求成功后的回调函数
    */
    function ajax_method(url, data, method, success){
        var ajax;
        if (window.XMLHttpRequest) {
            // IE7+, Firefox, Chrome, Opera, Safari
            ajax = new new XMLHttpRequest();
        }else {
            // IE6, IE5
            ajax = new ActiveXObject("Microsoft.XMLHTTP");
        }
    
        if (method == "get") {
            if (data) {
                // 有数据
                url += ("?"+data);
            }
            ajax.open(method, url);
            ajax.send();
        }else{
            // post
            ajax.open(method, url);
            // post请求要加上的请求头
            ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            if (data) {
                ajax.send(data);
            }else{
                ajax.send();
            }
        }
    
        ajax.onreadystatechange = function(){
            console.log("可以1");
            // 0: 请求未初始化
            // 1: 服务器连接已建立
            // 2: 请求已接收
            // 3: 请求处理中
            // 4: 请求已完成,且响应已就绪
            
            // 200: 请求处理成功
            // 404: 未找到页面
            if (ajax.readyState == 4 && ajax.status == 200) {
                console.log("请求成功");
                success(ajax.responseText);
            }else{
                console.log("请求失败");
            }
        }
    }

    调用:

    ajax_method("./test.php", {"param1": "val1"}, "post", function(data){
        console("请求拿到的数据:",data);
        // 之后将拿到的数据渲染视图层
    })

    jquery ajax

    使用jqury,可以便捷的发送ajax请求,需要引入juery.js

    $.ajax({
        url: "./test.php",
        method: "post",
        dataType: "json",    // 服务器返回数据类型
        data: {
            "param1": "val1",        // 请求参数
        },
        success: function(data){
            console("请求拿到的数据:",data);
            // 之后将拿到的数据渲染视图层
        },
        error: function(){
            alert('请求失败');
        }
    });

    ajax跨域

    为什么有跨域问题?

    同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。”

    同源:相同协议域名端口号。

    所以当ajax请求的地址,存在协议,域名,端口号不同时,则存在跨域问题,浏览器会报错。

    解决跨域的方法,可以看下一篇文章。

    jsonp —— javascript

  • 相关阅读:
    02、书店寻宝(一)
    01、博客爬虫
    00、下载文件
    068、Calico的网络结构是什么?(2019-04-11 周四)
    067、如何部署Calico网络 (2019-04-10 周三)
    066、Weave如何与外网通信?(2019-04-09 周二)
    065、容器在Weave中如何通信和隔离?(2019-04-08 周一)
    064、Weave网络结构分析(2019-04-04 周四)
    063、如何使用weave网络(2019-04-03 周三)
    CMD运行指令
  • 原文地址:https://www.cnblogs.com/mu159/p/11361515.html
Copyright © 2020-2023  润新知