1. 程式人生 > 實用技巧 >js獲取cookie資料併發送給服務端

js獲取cookie資料併發送給服務端

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>