原生ajax和封装ajax区别,原生ajax与封装的ajax使用方法

本文介绍了在不具备后端接口的情况下,如何利用Node.js搭建本地服务器进行Ajax测试。通过安装Express中间件,设置路由和响应,创建一个简单的服务器。同时,展示了原生Ajax和jQuery Ajax的写法,实现页面无刷新的数据更新。
摘要由CSDN通过智能技术生成

当我们不会写后端接口来测试ajax时,我们可以使用node环境创建一个本地服务器。

1、创建一个本地服务器可参考http://www.cnblogs.com/heyujun-/p/6793900.html网站整站开发小例子,在打开命令窗口并转到所在项目文件夹下在命令行中输入npm install express --save,安装express中间件。

71458abdd07635436be69402ea0a6779.png

d5efefb19d442e67388f156eeb072c11.png

2、把当中的app.js的内容换成

var express=require('express');

//var path=require('path');

var app=express();

//app.set('view',path.join(__dirname,'views')); //在views目录下搜索所有模板

app.engine('html',require('ejs').__express); //让ejs能够识别后缀为’.html’的文件 or app.engine("html",require("ejs").renderFile);

app.set('view engine','html');//在调用render函数时能自动为我们加上’.html’ 后缀。如果没有第二句,我们就得把res.render(‘users’)写成res.render(‘users.html’),否则会报错

var service=require('./webService/service.js');

app.use('/public',express.static('public'));

app.get('/',function(req,res){ //路由HTTP GET请求到有特殊回调的特殊路径。

res.render('index');

});

app.get('/ajax/index',function(req,res){ //创建了一个后端接口

res.send(service.get_index_data());

});

/*若路径找不到,都返回404报错页面*/

app.use(function(req,res,next){

var err=new Error('this page Not found');

err.status=404;

next(err);

});

app.listen(3003); //在浏览器输入localhost:3003即可浏览

3、index.json内容

{

"items":"Express 是一个自身功能极简,完全是由路由和中间件构成一个的 web 开发框架:从本质上来说,一个 Express 应用就是在调用各种中间件。中间件(Middleware) 是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和 web 应用中处于请求-响应循环流程中的中间件,一般被命名为 next 的变量。"

}

4、index.html内容

.content-box{

width: 400px;

}

#text{

padding: 0px 10px;

width: 400px;

height: 300px;

}

5、html结构

这是一段不变的内容这是一段不变的内容这是一段不变的内容

如果要让用户留在当前页面中,同时发出新的HTTP请求,就必须用JavaScript发送这个新请求,接收到数据后,再用JavaScript更新页面,这样一来,用户就感觉自己仍然停留在当前页面,但是数据却可以不断地更新。

换一换

6、原生ajax写法

window.οnlοad=function(){

function clickbtn(){

var request;

if(window.XMLHttpRequest){

request=new XMLHttpRequest(); // 新建XMLHttpRequest对象

}else{

request=new ActiveXObject('Microsoft.XMLHTTP'); //兼容ie

}

request.open('GET','/ajax/index',true);

request.onreadystatechange=function(){ // 状态发生变化时,函数被回调

if(request.readyState===4){ // 成功完成

if(request.status===200){

var text=request.responseText;//成功,通过responseText拿到响应的文本

document.getElementById('text').value=text;

}else{

var err=fail(response.status);// 失败,根据响应码判断失败原因

alert(err);

}

}else{

// HTTP请求还在继续...

}

}

// 最后调用send()方法才真正发送请求

request.send();//POST请求需要把body部分以字符串或者FormData对象传进去

}

document.getElementById('btnchange').οnclick=clickbtn;

}

或jquery写法

$(document).ready(function(){

$('#btnchange').click(function(){

$.ajax({

type:"GET",

url:"/ajax/index",

datatype:"json",

success:function(data){

$('#text').val(data);

}

});

});

});

6444cd544d2fbf5ad750575f845238f5.png

运行之后在浏览器输入localhost:3003即可浏览

378a3a7e8c9eaa7c3e18ee7e463c281d.png

点击换一换,页面不刷新,方框内容改变

3a0a8932abcad25817450014b544710b.png

原生ajax与封装的ajax使用方法就这样实现了。

js实现原生Ajax的封装及ajax原理详解

原理及概念 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是一种用于创建快速动态网页的技术. 动态网页:是指可以通过服务器语言结合数 ...

Ajax的封装,以及利用jquery的ajax获取天气预报

1.Ajax的封装 function ajax(type,url,param,sync,datetype,callback){//第一个参数是获取数据的类型,第二个参数是传入open的url,第三个是 ...

js原生Ajax的封装与使用

一.原生Ajax代码的封装如下: (function() { var XHR = { createStandardXHR: function() { return new XMLHttpRequest ...

js原生Ajax 的封装和原理

原理及概念 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是一种用于创建快速动态网页的技术. 动态网页:是指可以通过服务器语言结合数 ...

原生封装的ajax

原生封装的ajax的代码如下: //将数据转换成 a=1&b=2格式; function json2url(json){ var arr = []; //加随机数防止缓存; json.t = ...

ajax请求封装的公共方法

/** * post 方法 */ function ajaxPost(url, params, callBack) { ajax(url,params,"post",callBac ...

Ajax请求Session超时的解决办法:拦截器 + 封装jquery的post方法

目标:前端系统,后端系统等,统一处理Session超时和系统错误的问题. 可能需要处理的问题:Session超时.系统500错误.普通的业务错误.权限不足. 同步请求:            Sess ...

PHP. 03 .ajax传输XML、 ajax传输json、封装

XML简介 XML 指可扩展标记语言 EXtensible Markup Language .射击的时候是用来船体数据的,虽然格式跟HTML类似 xml示例 <?xml version=&quo ...

原生js,jquery通过ajax获得后台json数据动态新增页面元素

一.原生js通过ajax获取json数据 因为IE浏览器对ajax对象的创建和其他浏览器不同,为了兼容全部浏览器,我用下面的代码: function createXMLHttpRequest(){ t ...

随机推荐

Notes&colon;DOM的事件模拟

首先使用document对象的createEvent方法创建一个事件对象,然后初始化该事件对象,接着使用支持事件DOM节点的dispatchEvent方法触发事件. DOM2级事件和DOM3级事件有些 ...

Xamarin&period;Android 入门之:Bind java的jar文件&plus;Android显示gif图片

一.引言 在xamarin开发的时候,有时我们想要做一个功能,但是这个功能已经有人用java写好了,并且打包成了jar文件.那么我们可以直接把对方的jar文件拿过来用而不是重新用c#写代码. 关于bi ...

Android中如何判断是否联网

首先在AndroidManifest.xml中添加与连接网络相关的权限: [xhtml]  view plain copy  

Caffe学习系列(四)之--训练自己的模型

前言: 本文章记录了我将自己的数据集处理并训练的流程,帮助一些刚入门的学习者,也记录自己的成长,万事起于忽微,量变引起质变. 正文: 一.流程 1)准备数据集  2)数据转换为lmdb格式  3)计算 ...

简单的3d变换

  

asp&period;net 去掉小数点后面多余的0,本身为0则不显示

很多时候,比如gridview内,不想现实从数据库带出的多余小数 ,比如 4.01000 ,可显示为 4.01 如果是 0.00000, 则显示为空白 /// /// ...

在Mac终端显示 Git 当前所在分支

1.进入你的home目录 cd ~ 2.编辑.bashrc文件 vi .bashrc 3.将下面的代码加入到文件的最后处 function git_branch { branch="`git ...

【BZOJ4927】第一题 双指针&plus;DP

题解: 虽然是过了,不过做的十分智障 首先是有 2根 2 1 1 , 3根 1 1 1 这两种方法 然后考虑2 2 1 1 two-point-two没啥好说的 3 1 1 1 我很智障的以为数据范围 ...

概率分布之间的推导关系 &vert; Univariate Distribution Relationships

Univariate Distribution Relationships APPL: A Probability Programming Language Maplesoft- Software f ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值