美文网首页
Ajax Axios

Ajax Axios

作者: SentMes | 来源:发表于2019-07-24 11:29 被阅读0次

关于Ajax兼容性问题

function createAjax() {
    var ajax;
    try {       // 非 IE 
        ajax = new XMLHttpRequest();
    }
    catch (e) { // IE
        ajax = new ActiveXObject('Microsoft.XMLHTTP');
    }
    return ajax;
}

前端原生Ajax(get方式),后端使用node.js

  • 前后端代码:
// 后端代码
const express = require('express');
const path = require('path');
const app = express();

app.use('/static', express.static(path.join(__dirname, 'static')));
app.get('/ajax', (req, res)=>{
    res.send('AJAX');
});

app.listen(8888, () => console.log('启动成功 8888'));



// 前端代码
// 这里代码运行浏览器环境中
// 创建 AJAX 对象
// ajax xhr
var ajax = new XMLHttpRequest();
// 设置请求路径 请求方式, 是否异步
ajax.open('get', '/ajax', true);
// 绑定监听函数, 监听 AJAX 对象的状态的改变
ajax.onreadystatechange = function(){
    if(ajax.readyState == 4 && ajax.status == 200){ //代表服务成功响应完  
        // console.log(ajax.responseText); // 若是文本数据可以从 AJAX 对象 responseText 属性上拿
        document.querySelector('#result').innerHTML = ajax.responseText;

    }
}
// 发送请求
ajax.send();

前端原生Ajax(post方式),后端使用node.js

  • 编写页面:
<span id="result"></span>
<form id="loginForm">
    <input type="text" id="username" name="username" placeholder="用户名">
    <input type="text" id="password" name="username" placeholder="密码">
    <input id="login" type="button" value="登录">
</form>
  • 编写 AJAX 代码:
window.onload = function(){
    var loginEle = document.querySelector('#login');
    loginEle.onclick = function(){
        var username = document.getElementById('username').value;
        var password = document.getElementById('password').value;
        var params = 'username=' + username + '&password=' + password;

        var ajax = new XMLHttpRequest();

        ajax.open('post', '/login', true);
        // 参数进行 URL 编码,不然后台代码无法获取请求体中的参数
        ajax.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 

        ajax.onreadystatechange = function () {
            if(ajax.readyState == 4 && ajax.status == 200){ // 代表后台处理完毕且响应 200
                // 执行对应逻辑
                console.log(ajax.responseText);
                document.getElementById('result').innerText = ajax.responseText;
            }
        }
        ajax.send(params);
    }
}
  • 编写后台代码:
const express = require('express');
const app = express();

app.use(express.urlencoded({extended: false}));
app.use('/static', express.static(path.join(__dirname, 'static')));

app.post('/login', (req, res) => {
    console.log(req.body);
    if('zs' == req.body.username && '12345' == req.body.password){
        res.send('登录成功');
    }else{
        res.send('登录失败');
    }
});

app.listen(8888, () => {
    console.log('running...');
});

相关文章

  • 2018-09-26

    axios axios: vue中的ajax(ajax:前端页面和后台数据做交互) axios的应用

  • 【vue学习】axios

    Ajax、fetch、axios的区别与优缺点 axios的github地址 原生ajax jqueryAjax ...

  • ajax上传

    ajax axios

  • 2018-03-29 从MVC到MVVM

    关于axios是一个ajax的库 以前用ajax是这么用的 可以用axios.ajax()也可以用axios.po...

  • axios的配置

    一、axios 1、axios是对ajax请求的封装 2、ajax (1):Asynchronous Javasc...

  • 面试题

    axios和ajax的区别 axios是通过promise实现对ajax技术的一种封装axios可以运行nodej...

  • vue数据交互

    dom ajax axios

  • axios

    ajax axios axios.get axios.post Content-Type: application...

  • React中的“ajax”

    React没有ajax模块 集成其他的js库(如axios/fetch/jquery),发送ajax请求axios...

  • 由ajax到axios(koa项目)

    什么是axios? 其实axios是ajax的升级版,axios库是一个改进ajax底层的库,它可以把原生的aja...

网友评论

      本文标题:Ajax Axios

      本文链接:https://www.haomeiwen.com/subject/ecgtrctx.html