美文网首页
Express运用AJAX

Express运用AJAX

作者: playman | 来源:发表于2018-06-24 21:45 被阅读0次

AJAX

什么是AJAX

目的是为了减少表单在过程中过多请求相同页面导致的带宽浪费问题,同时可以减少表单填写错误而必须填写整套表单而带来的用户体验下滑。

创建XMLHttpRequest

  • 状态机 01234 可以增强用户体验

    0:刚开始

    1:开始

    2:刚接受头部

    3:下载响应体

    4:搞定完成

注册验证小例子

index.js路由配置中

router.get('/checkname', function (req, res, next) {
    var username = req.query.username;
    var str = 'zzq';
    if(str === username){
        res.send(username + '已经存在');
    }else{
        res.send('用户名可以使用');
    }
});

index.ejs页面设置

<input type="text" name="username" value="" id="username">
<span id="info"></span>

js代码

<script type="text/javascript">
    var req = new XMLHttpRequest();
    var input = document.getElementById('username');
    var info = document.getElementById('info');
    input.addEventListener("blur",function (e) {
        //get请求,数据随url传输
        req.open('get','/checkname?username='+input.value);
        req.send();
        req.onreadystatechange = function () {
            if(req.readyState === 4){
                info.innerHTML = req.responseText;
            }
        }
    });
</script>
注意:
var req = new XMLHttpRequest();
1.接受数据——req.responseText;
router.get('/checkname', function (req, res, next)
1.路由接收get参数——var username = req.query.username;
2.路由接收post参数——req.body.username;

从后端向前段传JSON数据

页面文件js内容(用JQuery写)

<script type="text/javascript">
    $(document).ready(function () {
        $('button').click(function (e) {
            $.ajax({
                url:'/getZZ',
                type:'get',
                data:{name:'zzq'},
                success:function (data) {
                    // 从后端取数据,并动态显示于页面
                    // 后端数据在data中
                    $('<h1></h1>').addClass('title').text(data.title).appendTo($('#container'));
                    $('<h2></h2>').addClass('des').text(data.src).appendTo($('#container'));
                    $('<p></p>').addClass('content').text(data.content).appendTo($('#container'));
                },
                error:function (err) {

                }
            });
        });
    });
</script>

路由index.js配置

router.get('/getzz', function (req, res, next) {
    var obj = {
        title:'今日头条:lalalalalla',
        src:'今日来源:hehehehehehe',
        content:'buzhiodao 不知道。。。。'
    }
    res.json(obj);
});
注意:post写法相同,但传递的方式不同,接收用req.body接收

跨域访问

什么是源

源是指资源,网络中能请求到的都是资源。请求资源需要使用统一资源定位符。(Uniform Resource Locator,简称URL)

什么是同源

两个页面拥有相同的协议、端口、主机域名,name这两个就是同源页面。

跨域请求中间件

文档网站

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

相关文章

  • Express运用AJAX

    AJAX 什么是AJAX 创建XMLHttpRequest 状态机 01234 可以增强用户体验0:刚开始1:开始...

  • AJAX2.0/express简述/CORS跨域/拖拽文件上传/

    AJAX2.0 formdata 基础 formdata数据提交 express库简述 使用express写服务器...

  • 全局安装express报错

    运用npm install -g express 安装express,然后运行express test的时候报错:...

  • 采坑之Error: Can't set headers afte

    前端使用jQuery的Ajax,后端使用Node的express框架;今天在使用Ajax post到服务端的时候,...

  • Swift4:func

    callback的运用 struct里的运用 callback在class里的运用 Closure Express...

  • Ajax 运用

    traditional默认值未false当提交的参数是数组( {selectUsers:[value,value,...

  • RESTful real example use by expr

    本文是一篇学习笔记,记录了学习express后台和ajax相关的知识 首先根据express建立一个服务器,用来模...

  • 原生Ajax与JQuery Ajax

    没有学Ajax之前,就在想这到底是一门什么技术,问自己什么是Ajax?Ajax有哪些重点概念?Ajax如何运用?听...

  • 2018-03-13ajax

    客户端;同步; AJAX异步; XMLhttprequest技术; (1)运用HTML+CSS ( 2 ) 运用...

  • MongoDB变量如何传参给查询条件

    最近需要在express中使用AJAX,通过AJAX给数据库更新用户表,但是用户数据很多,所以需要把查询条件写成动...

网友评论

      本文标题:Express运用AJAX

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