express ajax登陆验证,Express运用AJAX

本文介绍了AJAX技术如何通过减少不必要的页面请求,优化表单填写体验,同时提供了一个简单的用户名验证示例。此外,还讨论了XMLHttpRequest的状态机以及GET和POST请求在接收数据时的区别。接着,解释了什么是跨域访问,以及如何通过设置响应头解决跨域问题。最后,通过jQuery展示了如何从后端获取JSON数据并动态显示在页面上。
摘要由CSDN通过智能技术生成

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页面设置

js代码

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;

}

}

});

注意:

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写)

$(document).ready(function () {

$('button').click(function (e) {

$.ajax({

url:'/getZZ',

type:'get',

data:{name:'zzq'},

success:function (data) {

// 从后端取数据,并动态显示于页面

// 后端数据在data中

$('

').addClass('title').text(data.title).appendTo($('#container'));

$('

').addClass('des').text(data.src).appendTo($('#container'));

$('

},

error:function (err) {

}

});

});

});

路由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();

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值