品牌型号:联想GeekPro 2020
系统:win10 1909 64位企业版
nodejs与java怎么交互呢?下面就给大家介绍一下nodejs与java的交互方法。
先贴代码:
主页面的html
index.html:
food
other
然后是服务器端的代码,运行方式是在node环境下输入命令:node server.js
server.js:
let http = require('http');
let qs = require('querystring');
let server = http.createServer(function(req, res) {let body = ''; // 一定要初始化为"" 不然是undefined
req.on('data', function(data) {body += data; // 所接受的Json数据
});
req.on('end', function() {res.writeHead(200, { // 响应状态
"Content-Type": "text/plain", // 响应数据类型
'Access-Control-Allow-Origin': '*' // 允许任何一个域名访问
});
if(qs.parse(body).name == 'food') {res.write('apple');
} else {res.write('other');
}
res.end();
});
});
server.listen(3000);
引入的qs模块用于解析JSON
req.on('data', callback); // 监听客户端的数据,一旦有数据发送过来就执行回调函数
req.on('end', callback); // 数据接收完毕
res // 响应
客户端的js(功能就是负责一些DOM操作以及发送ajax请求)
client.js:
let btn1 = document.getElementById('btn1');
let btn2 = document.getElementById('btn2');
let content = document.getElementById('content');
btn1.addEventListener('click', function() {ajax('POST', "http://127.0.0.1:3000/", 'name='+this.innerHTML);
});
btn2.addEventListener('click', function() {ajax('POST', "http://127.0.0.1:3000/", 'name='+this.innerHTML);
});
// 封装的ajax方法
function ajax(method, url, val) { // 方法,路径,传送数据
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {if(xhr.readyState == 4) {if(xhr.status >= 200 && xhr.status < 300 || xhr.status == 304) {content.innerHTML = xhr.responseText;
} else {alert('Request was unsuccessful: ' + xhr.status);
}
}
};
xhr.open(method, url, true);
if(val)
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(val);
}