[转]ajax访问Node服务器
前言:node算是入了个门。现在终于有个服务器。以前只写过SSH框架的Java后台下,前台使用jQuery交互。但是纯原生怎么写呢?
demo需求
既然是demo先从最简单的。书写一个表单提交页面。从前台input提交到后台,接收输出到浏览器。后台将收到的数据再展示到前台output中。
双向的数据传输demo。demo虽小,五脏俱全。
新建工程
idea开发。新建基础模版。
前台页面index.html
页面实现如下:
前台代码:
1 <h3>请填写下表</h3> 2 <form> 3 <label>姓名:<input type="text" id="name" name="name" value="zyd317"></label> 4 <br><br> 5 <input type="submit" value="提交"> 6 <br><br> 7 您的姓名是:<output id="output"></output> 8 </form> 9 <script> 10 var name = document.getElementById("name").value; 11 var output = document.getElementById("output"); 12 //alert(name); 13 var xhr = new XMLHttpRequest(); 14 xhr.open("get","http://localhost:8888/?name="+name,true);//把数据传到哪里? 15 xhr.onreadystatechange=function () { 16 if(xhr.readyState==4){ 17 if(xhr.status>=200&&xhr.status<300||xhr.status==304){ 18 console.log("您的名字是:"+xhr.responseText);//从服务器得到的反馈文本 19 output.innerHTML=xhr.responseText; 20 21 } 22 } 23 }; 24 //xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 25 xhr.send();//表单必须要要格式化 26 </script>
node.js代码
1 var http = require("http");//获取http模块 2 function onRequest(req,res) {//定义服务器监听得到响应的函数 3 var text = req.url.toString().split("=")[1]; 4 console.log("result-----------"+req.url.toString()); 5 console.log("text-----------"+text); 6 res.writeHead(200,{"Content-Type":"text/plain","Access-Control-Allow-Origin":"http://localhost:63342"}); 7 res.write(text);//相当于页面的responseText 8 res.end(); 9 } 10 http.createServer(onRequest).listen(8888, function () {//createServer可以传入两个参数(req,res) 11 console.log("listening................"); 12 });