Node.js获取前端ajax提交的request信息


Posted in Javascript onFebruary 20, 2017

今天看一下Node.js怎么获取ajax提交的request 信息

众所周知,ajax可以在不刷新整个页面的情况下实现局部刷新,这是相当好的一种方式,能够让我们动态更新信息,今天我们看一下怎么用node来接收到前端ajax提交过来的信息

下面我贴一下前端的代码
index.html的代码我就不贴了, 因为里面就只有一个按钮而已,要实现的功能是点击按钮提交ajax异步请求

主要贴一下js页面的代码

$("button").on("click",function(){
  //提交ajax请求
  $.ajax({
    url:"http://localhost:9999",
    data:{name:'xiaoming',age:19},
    type:"POST",
    dataType:"json",
    async:true,
    timeout:5000,
    complete:function(){
      console.log("end");
    },
    success:function(data,textStatus,jqXHR){
      console.log(data);
      console.log(textStatus);
      console.log(jqXHR);
    },
    error:function(textStatus,jqXHR){
      console.log("error");
      console.log(textStatus);
      console.log(jqXHR);
    }
  });
});

这样我们就已经异步提交了一个ajax请求给服务端。

由于我的服务端是用node写的,我贴一下node.js的代码

/**
 * New node file
 */

//载入模块
var http = require("http");
function onRequest(req,resp){
  //获取ajax提交的信息
  req.on("data",function(data){
    //打印
    console.log(decodeURIComponent(data));
  });
  //返回response
  resp.writeHead(200,{"ContentType":"text/html;charset=utf-8"});
  //返回响应尾
  resp.end();
}

//创建服务器
http.createServer(onRequest).listen(9999);

服务器获取的结果如下:

name=xiaoming&age=19

乍一看,其实获取ajax的请求信息是非常简单,我在node里创建了服务器,然后给request添加data事件,做了一个回调处理,然后就可以获取到ajax提交过来的数据了

但是这样的话,我们还是不能灵活的使用这个数据,我们必须用split将其name和age的value分割出来,这是相当不方便的。

于是我们想到了用querystring来解析为json对象,我们只需要稍稍修改一下刚刚的代码就可以实现

/**
 * New node file
 */

//载入模块
var http = require("http");
var qs = require("querystring");
function onRequest(req,resp){
  //获取ajax提交的信息
  var currentData = "";
  req.on("data",function(data){
    //打印
    currentData += data;
    console.log(qs.parse(currentData));
  });
  //返回response
  resp.writeHead(200,{"ContentType":"text/html;charset=utf-8"});
  //返回响应尾
  resp.end();
}

//创建服务器
http.createServer(onRequest).listen(9999);

下面是运行的结果

{ name: 'xiaoming', age: '19' }

我们也可以将它装到一个变量里,然后使用它的各种属性

var temp = qs.parse(data);
console.log(temp.name);
console.log(temp.age);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
document对象execCommand的command参数介绍
Aug 01 Javascript
基于Jquery的开发个代阴影的对话框效果代码
Jul 28 Javascript
js实现杯子倒水问题自动求解程序
Mar 25 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
Sep 23 Javascript
一个js控制的导航菜单实例代码
Dec 03 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
Mar 20 Javascript
jQuery实现表格行上移下移和置顶的方法
May 22 Javascript
jQuery实现带延迟效果的滑动菜单代码
Sep 02 Javascript
two.js之实现动画效果示例
Nov 06 Javascript
vue如何判断dom的class
Apr 26 Javascript
vue如何引入sass全局变量
Jun 28 Javascript
20多个小事例带你重温ES10新特性(小结)
Sep 29 Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 #Javascript
Node.js websocket使用socket.io库实现实时聊天室
Feb 20 #Javascript
Angular在一个页面中使用两个ng-app的方法(二)
Feb 20 #Javascript
Angular在一个页面中使用两个ng-app的方法
Feb 20 #Javascript
JS高仿抛物线加入购物车特效实现代码
Feb 20 #Javascript
ES6中Math对象的部分扩展
Feb 20 #Javascript
微信小程序左滑删除效果的实现代码
Feb 20 #Javascript
You might like
Terran历史背景
2020/03/14 星际争霸
php与c 实现按行读取文件实例代码
2017/01/03 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
2019/05/29 PHP
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
深入浅析search 搜索框的写法
2016/08/02 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
python 实现归并排序算法
2012/06/05 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
Python线程创建和终止实例代码
2018/01/20 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
Python整数对象实现原理详解
2019/07/01 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
pytorch SENet实现案例
2020/06/24 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
心理健康教育制度
2014/01/27 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
运动会通讯稿100字
2015/07/20 职场文书
教师旷工检讨书
2015/08/15 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android