很多小白不知道ajax怎么学,所以就弄了个node后台模拟下基本的ajax请求。

环境要求是安装node~

先上linkMysql.js


var mysql = require('mysql')
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '', //自己数据库的密码
database: ''//自己数据库的名称
}) function LinkMysql(tableName, key, value) {
connection.connect()
var data = ''
var sql = 'SELECT * FROM ' + tableName +' where ' + key + '=' + value
console.log(sql)
return new Promise(function(resolve,reject) {
connection.query(sql, function(err, result) {
console.log('--------------------------SELECT----------------------------');
console.log(result);
console.log('------------------------------------------------------------\n\n');
resolve(result)
})
})
} function cutMysql() {
connection.end();
} module.exports = {
cutMysql,
LinkMysql
}

主JS server.js,提供连接maysql和不连接mysql两种版本


var http = require('http')
var url = require('url');
var util = require('util');
var sqlFunc = require('./linkMysql.js'); // 不连接数据库操作
// var tempJson = [{
// name: '巧克力',
// price: 10
// },{
// name: '薯条',
// price: 20
// }] http.createServer(function(req, res) {
// 跨域处理
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Headers", "X-Requested-With");
res.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.setHeader("X-Powered-By",' 3.2.1');
res.setHeader("Content-Type", "application/json"); var reqUrl = req.url
var mainPath = reqUrl.split('?')[0]
var reqData = reqUrl.split('?')[1].split('=') if (mainPath == '/test') {
sqlFunc.LinkMysql('goods_info', reqData[0], JSON.stringify(decodeURIComponent(reqData[1]))).then(function(val) {
console.log('从数据库获取数据' + val)
sqlFunc.cutMysql(); res.writeHead(200, {'content-Type': 'text/plain; charset=utf-8'});
res.end(JSON.stringify(val));
})
// 不连接数据库操作
// res.writeHead(200, {'content-Type': 'text/plain; charset=utf-8'});
// res.end(JSON.stringify(tempJson));
} else {
res.writeHead(404, {'content-Type': 'text/plain; charset=utf-8'});
} }).listen(3000); console.log('Server running at http://localhost:3000');

最后就是前端html页面了~test.html,用了原生写法,具体的就不讲了百度一大堆~

```<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div>数据请求</div>
<div class="box">

</div>

<script>

var xhr = new XMLHttpRequest()

xhr.onreadystatechange = function(){
if (xhr.readyState == 4) {
if ((xhr.status &gt;= 200 &amp;&amp; xhr.status &lt; 300) || xhr.status == 304) {
console.log(xhr.responseText)
var data = JSON.parse(xhr.responseText)
var str = ''
for(var i = 0; i &lt; data.length; i ++) {
str += "&lt;div&gt;name: " + data[i].name + "&lt;/div&gt;&lt;div&gt;price: " + data[i].price + "&lt;/div&gt;"
}
document.querySelector('.box').innerHTML = str
} else {
console.log("Request was unsuccessful: " + xhr.status)
}
}
} xhr.open('get', 'http://localhost:3000/test?name=巧克力', true)
xhr.send(null)

</script>

</body>

</html>


<p>命令行输入<br>node server.js 启动服务 刷新test.html页面就能拿到数据了~</p> 来源:https://segmentfault.com/a/1190000016700988

最新文章

  1. GIT常用命令笔记
  2. 微信小程序之生命周期(三)
  3. 1.3 迭代器 - iterator
  4. Toward Scalable Systems for Big Data Analytics: A Technology Tutorial (I - III)
  5. PySe-004-Se-WebDriver 启动浏览器之二 - Chrome
  6. 第七篇 Replication:合并复制-订阅
  7. mysql explain和profiling
  8. APIO2010特别行动队
  9. WPF 禁用TextBox的触摸后自动弹出虚拟键盘
  10. error running git
  11. 中文乱码与字体库windows
  12. PHPCMS V9完全开发介绍
  13. webpack 学习资料
  14. UI自动化测试元素定位思想
  15. 七、angularjs 倒计时
  16. Effective Java-第三章
  17. could not read data from &#39;/Users/lelight/Desktop/ViewControllerLife/ViewControllerLife/Info.plist&#39;: The file “Info.plist” couldn’t be opened because there is no such file.
  18. zabbix--高级篇-监控docker服务(一)
  19. Codeforces Round #418 (Div. 2) D. An overnight dance in discotheque
  20. Oracle单行函数。。。

热门文章

  1. 使用 ODP.NET 访问 Oracle(.net如何访问Oracle)详解【转】
  2. Linux命令之basename 命令
  3. 接口性能测试方案 白皮书 V1.0
  4. div下拉框(待改善)
  5. jquery插件jTemplates使用方法
  6. 高速掌握Lua 5.3 —— Lua与C之间的交互概览
  7. TimeSpan时间间隔
  8. request获取数据的几种方法
  9. Lua学习七----------Lua函数
  10. 1verilog 位拼接