1-http服务器创建步骤
const http = require('http')
let server = http.createServer((req, res) => {
res.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'});
res.end('添加表头以后不会乱码')
})
server.listen('8868');
2-form表单get请求步骤
所写的html文件需要放置在www/(自定义文件名)下且文件名必须为index.html
书写的js文件需要放置在和www同级的目录下,如果不是,需要注意请求路径
exp:
文件路径www/login/index.html
form表单的action为"http://localhost:8848/submit"
method为"get"
js代码如下:
const http = require('http')
const fs = require('fs')
const path = require('path')
const url = require('url')
let server = http.createServer((req, res) => {
if(req.url == '/favicon.ico') return;
if(req.url.startsWith('/login')){
fs.readFile(path.join(__dirname,'www',req.url),(err, data) => {
if(err) throw err;
res.end(data);
})
}else if(req.url.startsWith('/submit')){
res.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'})
let user = url.parse(req.url,true).query.user
let psw = url.parse(req.url,true).query.psw
res.end(`您输入的用户名称是:${user}您的密码是:${psw}`)
}else {
res.end('404')
}
})
server.listen('8848')
3-form表单post请求
所写的html文件需要放置在www/(自定义文件名)下且文件名必须为index.html
书写的js文件需要放置在和www同级的目录下,如果不是,需要注意请求路径
exp:
文件路径www/post/index.html
form表单的action为"http://localhost:9898/formpost"
method为"post"
js代码如下:
const http = require('http')
const fs = require('fs')
const path = require('path')
const url = require('url')
const querystring = require('querystring')
let server = http.createServer((req, res) => {
if(req.url == '/favicon.ico') return;
if(req.url.startsWith('/post')){
fs.readFile(path.join(__dirname,'www',req.url),(err, data) => {
if(err) throw err;
res.end(data);
})
}else if(req.url.startsWith('/formpost')){
res.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'})
var allData = '';
req.on('data',(chunk) => {
allData += chunk;
});
req.on('end',() => {
let user = querystring.parse(allData).user
let password = querystring.parse(allData).password
res.end(`
用户:${user}
密码:${password}
`)
})
}else {
res.end('404')
}
})
server.listen('9898')
4-jQuery的ajax请求
如果使用jQuery,就不能使用form表单,否则会冲突
exp:
文件路径www/ajax/index.html
form表单的action为"http://localhost:9898/carry"
method为"post"
html内部的js代码如下:
$("input[type = 'submit']").click(() => {
$.ajax({
url:"http://localhost:9898/carry",
data:{
user:$('input').eq(0).val(),
password:$('input').eq(1).val()
},
method:'post',
success:(res) => {
console.log(res);
如果请求成功,进行页面跳转
if(res){
location.href = "http://localhost:9898/music/index.html"
}
}
})
})
服务器js代码如下:
const http = require('http')
const fs = require('fs')
const path = require('path')
const url = require('url')
const querystring = require('querystring')
let server = http.createServer((req, res) => {
if(req.url == '/favicon.ico') return;
if(req.url.startsWith('/ajax')){
fs.readFile(path.join(__dirname,'www',req.url),(err, data) => {
if(err) throw err;
res.end(data);
})
}
else if(req.url.startsWith('/carry')){
res.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'})
var allData = '';
req.on('data',(chunk) => {
allData += chunk;
});
req.on('end',() => {
let user = querystring.parse(allData).user
let password = querystring.parse(allData).password
res.end(`
用户:${user}
密码:${password}
`)
})
}else if(req.url.startsWith('/music')){
fs.readFile(path.join(__dirname,'www',req.url),(err, data) => {
if(err) throw err;
res.end(data);
})
}else{
res.end('404')
}
})
server.listen('9898')