Ajax实现POST请求

405 阅读2分钟

// 以下为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)