備忘錄_20160105(定位) 修改 回首頁

程式 2026-09-02 16:24:57 1788337497 100
javascript fetch + php + json V2

javascript fetch + php + json V2


javascript


<script>
async function template()
{
  let oBtn=event.target;
  oBtn.setAttribute("disabled", "true");
  
  while(true)
  {
    try
    {
      var oResponse=await fetch(
        "a.php",
        {
          method: "POST",
          headers: { "Content-Type": "application/json; charset=UTF-8" },
          body: JSON.stringify({"strUsername":"john", "strPassword":"123"})
        }
      );
      
      var strJson=await oResponse.text();
      var oJson=JSON.parse(strJson);
      
      console.log(oJson);
    }
    catch(oError)
    {
      console.log({ "oResponse":oResponse, "strJson":strJson, "oError":oError });
      alert((oResponse.url+"\n"+oResponse.status+"\n"+oResponse.statusText)+"\n\n"+strJson+"\r\n"+(oError.toString()));
      break;
    }
    
    break;
  }
  
  oBtn.removeAttribute("disabled");
}
</script>    

php


<?php
  
  header("Content-Type: application/json; charset=utf-8");

  $strJson=file_get_contents('php://input'); // 讀入 json 資料
  $oInpData=json_decode($strJson);

  $oOutData=new stdClass();
  $oOutData->booSuccess=true;
  $oOutData->oInp=$oInpData;
  
  echo json_encode($oOutData, JSON_UNESCAPED_UNICODE); // 輸出 json 資料
  
?>