js獲取cookie資料併發送給服務端
阿新 • • 發佈:2020-10-12
js獲取cookie資料併發送給服務端
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <script type="text/javascript"> function post(){ // 設定cookie let setCookie=(key, value, days) =>{ let now = new Date(); let expires = ''; let formatValue = ''; if(days){ now.setTime(now.getTime() + days * 24 * 60 * 60 * 1000); expires = ";expires=" + now; } if(!key){ return false } try{ formatValue = JSON.stringify(value); }catch(e){ console.log(e); return false; } document.cookie = key + "=" + formatValue + expires; }; // 獲取cookie let getCookie=key=> { //如果cookie中有資料 才可以獲取資料 if (document.cookie) { let cookieInfo = document.cookie; //cookie中可能會包含一些 額外的資料,這些資料特點是由 分號和空格間隔的 //所以 先將 分號和空格 替換掉 替換成 ; let arr = cookieInfo.replace(/;\s/g, ';').split(";"); let item,brr; for (let i = 0; i < arr.length; i++) { item = arr[i].split("="); if (item[0] === key) { brr = item[1]; return JSON.parse(brr);//如果找到 我們想要的鍵,將值轉成陣列返回 } } //如果cookie中 沒有我們想獲取的鍵值,直接返回一個空陣列 return []; } //如果cookie中沒有資料,直接返回一個空陣列 return []; }; // 獲取cookie 所有的值 let getCookieAll=()=> { //如果cookie中有資料 才可以獲取資料 let resList = []; const map = new Map(); if (document.cookie) { let cookieInfo = document.cookie; //cookie中可能會包含一些 額外的資料,這些資料特點是由 分號和空格間隔的 //所以 先將 分號和空格 替換掉 替換成 ; let arr = cookieInfo.replace(/;\s/g, ';').split(";"); let item,brr; for (let i = 0; i < arr.length; i++) { item = arr[i].split("="); map.set(item[0], item[1]); } //如果cookie中 沒有我們想獲取的鍵值,直接返回一個空陣列 return map; } //如果cookie中沒有資料,直接返回一個空陣列 return map; }; // var setCookieData = setCookie('me', 'wzy', 1); var getCookieData = getCookieAll(); console.log(getCookieData); //msp轉object let obj= Object.create(null); for (let[k,v] of getCookieData) { obj[k] = v; } //object轉json // obj = JSON.stringify(obj); // var postData = { // "username": "13321503898", // "password": "a123456", // "imsi":"wzy - 載入的時候執行" // }; var postData = obj; var url = "http://xxx.xxx.xxx.xxx/appall/get/js/post/data"; var xhr = new XMLHttpRequest(); xhr.open("POST", url, true); xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xhr.send(JSON.stringify(postData)); } </script> <input type="button" value="觸發請求" onclick="post()" style="width:200px;height:200px;font-size:30px"/><br><br> <script>post()</script> </body> </html>