// 以下为POST方法
客户端:
// POST请求 // var xhr=new XMLHttpRequest() // xhr.addEventListener("readystatechange",statechangeHandler) // xhr.open("POST","http://localhost:4010") // // 和get的不同,get是在url中发送数据的,发送成功后,在网页的network,请求载荷中可以查看 // // 但此时是明文传送,需要进行转换 // xhr.send("a=1&b=2") // function statechangeHandler(){ // if(xhr.readystate===4 && xhr.status===200){ // console.log(xhr.response) // } // }
// 当你想要用POST发送一个字符串 // var str='i love javascript' // var arr=[] // for(var i=0;i<str.length;i++){ // arr.push(str.charCodeAt(i))//获取数组中第i项的ASCII // } // arr=new Uint8Array(arr) // console.log(arr)//这个时候是一个盛满ASCII码的数组
// var xhr=new XMLHttpRequest() // xhr.addEventListener("readystatechange",statechangeHandler) // xhr.open("POST","http://localhost:4010") // // 和get的不同,get是在url中发送数据的,发送成功后,在网页的network,请求载荷中可以查看 // // 但此时是明文传送,需要进行转换 // xhr.send(str)//将ASCII码数组发送,但是此时在网页中仍然是一个原始的字符串 // function statechangeHandler(){ // if(xhr.readystate===4 && xhr.status===200){ // console.log(xhr.response) // } // }
// 当你想用post发送一个在网页载荷中加密的内容
// var str="i love javascript" // var arr=[] // for(var i=0;i<str.length;i++){ // arr.push(str.charCodeAt(i)^255)//获取数组中第i项的ASCII,按位异或 // } // arr=new Uint8Array(arr) // // console.log(arr)//这个时候是一个盛满ASCII码的数组
// var xhr=new XMLHttpRequest() // xhr.addEventListener("readystatechange",statechangeHandler) // xhr.open("POST","http://localhost:4010") // // 和get的不同,get是在url中发送数据的,发送成功后,在网页的network,请求载荷中可以查看 // // 但此时是明文传送,需要进行转换 // xhr.send(arr)//将ASCII码数组发送,此时发送的是异或之后隐藏的数据 // function statechangeHandler(){ // if(xhr.readystate===4 && xhr.status===200){ // console.log(xhr.response) // } // }
// var str="i love javascript" // var arr=[] // for(var i=0;i<str.length;i++){ // arr.push(str.charCodeAt(i)^255)//获取数组中第i项的ASCII,按位异或 // } // arr=new Uint8Array(arr) // console.log(arr)//这个时候是一个盛满ASCII码的数组
服务端:
// var http=require("http") // // 利用node自带的querystring方式 // var querystring=require("querystring") // http.createServer((req,res)=>{ // // 打印请求url的querystring字符串 /?a=1&b=2 // console.log(req.url) // // 接受数据事件 参数是客户端发给服务器的参数 // req.on("data",function(_data){ // var data='' // for(var i=0;i<_data.length;i++){ // // 这里打印的是十进制的ASCII码 // console.log(_data[i]) // data+=String.fromCharCode(_data[i]) // } // console.log(data) //a=1&b=2
// // 理解为:发送数据时把字符串的每一项转换成ASCII,转换成16进制数组发给服务器
// console.log(_data); //未经转换直接打印(16进制):<Buffer 61 3d 31 26 62 3d 32>
// })
// // 设置响应头
// res.writeHead(200,{
// "Content-Type":"text/html;charset-utf-8",
// // 跨域服务
// "Access-Control-Allow-Origin":"*"
// })
// // 相应数据
// res.end("aaa")
// }).listen(4010)
// POST加密方式
// var http=require("http")
// // 利用node自带的querystring方式
// var querystring=require("querystring")
// http.createServer((req,res)=>{
// // 打印请求url的querystring字符串 /?a=1&b=2
// console.log(req.url)
// // 接受数据事件 参数是客户端发给服务器的参数
// req.on("data",function(_data){
// var data=""
// for(var i=0;i<_data.length;i++){
// // 这里打印的是十进制的ASCII码
// // console.log(_data[i])
// data+=String.fromCharCode(_data[i]^255)//这里执行反异或
// }
// console.log(_data); //未经转换直接打印(16进制):<Buffer 61 3d 31 26 62 3d 32>
// console.log(data) //a=1&b=2
// // 理解为:发送数据时把字符串的每一项转换成ASCII,转换成16进制数组发给服务器
// })
// // 设置响应头
// res.writeHead(200,{
// "Content-Type":"text/html;charset-utf-8",
// // 跨域服务
// "Access-Control-Allow-Origin":"*"
// })
// // 相应数据
// res.end("aaa")
// }).listen(4010)
// 当请求发送了大量的数据时 // 服务端需要接受完所有的数据,在执行其他操作 // var http=require("http") // // 利用node自带的querystring方式 // var querystring=require("querystring") // http.createServer((req,res)=>{ // // 打印请求url的querystring字符串 /?a=1&b=2 // console.log(req.url) // // 接受数据事件 参数是客户端发给服务器的参数 // var data="" // req.on("data",function(_data){ // data+=_data // // console.log(_data.toString())//a=1&b=2 // // console.log(_data+"")//a=1&b=2 // // 当你请求时发送的数据过多,会分包传送,一个包最多65000字符
// })
// // 当所有数据接收完成的事件
// req.on("end",function(){
// console.log(data)
// // 当前端发送的数据全部接受完毕发送相应头
// res.writeHead(200,{
// "Content-Type":"text/html;charset-utf-8",
// // 跨域服务
// "Access-Control-Allow-Origin":"*"
// })
// res.end("aaa")
// })
// // 设置响应头
// // 相应数据
// }).listen(4010)