在html页面上使用ajax传递json数据到基于express框架(node.js)的服务器
2016-08-04 20:37
1036 查看
关键词:json node express body-parser ajax与node post方法
$ mkdir ajaxtest
在该文件夹下面建立两个文件:ajax.html,ajaxjs.js。
在cmd命令行工具打开文件夹,并且通过npm安装需要加载的node模块:
$ cd ajaxtest
$ npm install body-parser express fs
注意:
1)var text={“name”:”张三”,”age”:40},这是一个json对象。
2)xmlhttp.open(“POST”, “http://127.0.0.1:3000/ajaxjs.js“, true)中第二个参数根据后端服务中的路由自己设置。
3)body-parser接收的参数是string,所以需要先把json对象转换成字符串,xmlhttp.send(JSON.stringify(text))。
注意:
1)因为ajax.html和ajaxjs.js一样位于根目录下,所以设置静态文件的路径为根目录(”./”)。
2)request.body是一个json对象,而不是string。
$ cd ajaxtest
$ node ajaxjs.js
如图:
在浏览器中输入:http://127.0.0.1:3000/ajax.html,如图:
点击传输按钮,从服务器获得了相应数据{“name”:”张三”,”age”:40},浏览器如图:
服务器监控如图:
参考资料:
Express 4.x API 中文手册
express 解析post方式下的json参数
node.js post json格式数据到服务器的几种方法
How to consume JSON POST data in an Express application
简介
json格式简单命了,比XML更易解析,所以在web开发中前后端传送数据经常使用json格式。我们知道node是基于JavaScript的环境,而json是基于JavaScript对象的格式,所以在node中使用json格式甚至都不用进行数据格式的转换,这比java环境中方便快速。下面来讲解一下怎么在html页面上使用ajax传递json数据到基于express框架(node.js)的服务器中。业务场景
从html页面使用ajax技术(post方法)传送一个json对象到express框架的服务器上。代码分析
通过cmd命令行工具在系统根目录新建一个文件夹:$ mkdir ajaxtest
在该文件夹下面建立两个文件:ajax.html,ajaxjs.js。
在cmd命令行工具打开文件夹,并且通过npm安装需要加载的node模块:
$ cd ajaxtest
$ npm install body-parser express fs
1.前端代码(ajax.html)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ajax</title> </head> <body> <input type="button" value="传输" name="save" id="save_data" onclick="testAjax()"> <div id="out_tip" style="border:1px solid red;height:30px;margin-top:10px;line-height:30px;"></div> <script> function testAjax() { var text={"name":"张三","age":40}; //这是一个json对象 var xmlhttp; if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { console.log('服务器响应成功'); document.getElementById("out_tip").innerHTML=xmlhttp.responseText; } } xmlhttp.open("POST", "http://127.0.0.1:3000/ajaxjs.js", true); xmlhttp.setRequestHeader("Content-type","application/json");//需要设置成application/json xmlhttp.send(JSON.stringify(text)); //body-parser解析的是字符串,所以需要把json对象转换成字符串 console.log(text); console.log(JSON.stringify(text)); console.log(typeof JSON.stringify(text)); } </script> </body> </html>
注意:
1)var text={“name”:”张三”,”age”:40},这是一个json对象。
2)xmlhttp.open(“POST”, “http://127.0.0.1:3000/ajaxjs.js“, true)中第二个参数根据后端服务中的路由自己设置。
3)body-parser接收的参数是string,所以需要先把json对象转换成字符串,xmlhttp.send(JSON.stringify(text))。
2.后端代码(ajaxjs.js)
var express = require('express'); var bodyParser = require('body-parser'); var fs=require("fs"); var app = express(); //通过express.static访问静态文件,这里访问的是ajax.html app.use(express.static("./")); app.use(bodyParser.json()); // for parsing application/json app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded //路由获取post方式传递的数据 app.post("/ajaxjs.js", function(request, response){ console.log(request.body); // this a json object response.send(request.body); // echo the result back }); app.listen(3000, function() { //监听http://127.0.0.1:3000端口 console.log("server start"); });
注意:
1)因为ajax.html和ajaxjs.js一样位于根目录下,所以设置静态文件的路径为根目录(”./”)。
2)request.body是一个json对象,而不是string。
运行
在cmd命令行工具中打开ajaxtest文件夹,运行ajaxjs.js文件:$ cd ajaxtest
$ node ajaxjs.js
如图:
在浏览器中输入:http://127.0.0.1:3000/ajax.html,如图:
点击传输按钮,从服务器获得了相应数据{“name”:”张三”,”age”:40},浏览器如图:
服务器监控如图:
参考资料:
Express 4.x API 中文手册
express 解析post方式下的json参数
node.js post json格式数据到服务器的几种方法
How to consume JSON POST data in an Express application
相关文章推荐
- 使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
- 使用Ajax传递 json数据,并在一般处理页面进行接收全过程
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
- 用node.js搭建服务器,模拟返回json数据供客户端get,post请求使用
- 使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
- Vue入门学习-使用服务器传来的JSON数据交给Vue渲染HTML页面
- 菜鸟小白使用node.js搭建简单服务器(可请求图片,html,js,css,json等文件)
- ajax根据ID查询数据库并返回Json格式数据返回js,使用append显示到页面。判断json值为[]或者[[]]的问题。
- 使用所见即所得文本编辑器编辑文本存入数据库后通过ajax获取服务器json_encode的数据到前台,文本内容上边的html标签不解析
- 基于jQuery的AJAX和JSON实现纯html数据模板
- asp.net中Ajax技术使用Json格式传递数据
- Ajax---发送参数:使用JSON替代XML向服务器发送数据
- js模版引擎(基于html模版和json数据的javascript交互)(第一讲)
- 在Ajax中使用JSON传递数据 [ZT]
- 基于jQuery的AJAX和JSON实现纯html数据模板
- 关于“Asp.net 中后台CS读取数据库数据生成数组传递给前台页面JS使用”
- 基于jQuery的AJAX和JSON实现纯html数据模板
- MVC中使用ajax和json传递数据简单示例
- Ajax - 使用JSON向服务器发送数据
- JST+JSON+AJAX——使用客户端js模版代替服务端数据绑定