鍍金池/ 問答/HTML/ 開發(fā)微信公眾號(hào)的時(shí)候一直在循環(huán)重定向,怎么回事

開發(fā)微信公眾號(hào)的時(shí)候一直在循環(huán)重定向,怎么回事

大神幫我看看這是什么原因一直進(jìn)入不到success函數(shù)里面,一直alert(登錄失?。?,而且是循環(huán)的,因?yàn)檫M(jìn)入不到success里面所以存不了cookie,所以一直在重定向,崩潰了

let bind = Cookies.get("ptoken")
if (bind == undefined) {
  location.;

let json = {
  code:'001WYYaG1ffLF1038WdG1c81bG1WYYaa'
};
let url = location.hostname;
wx_login(json,function (res) {
  console.log(res);
  location.href = "http://" + url + "/dak/";
})
function wx_login(data, completion) {
  let time = Date.parse(new Date());
  let hash = hex_md5(time + "XXX");
  $.ajax({
    type: "post",
    url: "192.168.18.85:8080/weChatUserLogin",
    data: JSON.stringify(data),
    async: false,
    dataType: 'text',
    headers: {
      "token": "",
      "version": "1",
      "client_type": "3",
      "Timestamp": time,
      "SignInfo": hash,
      "Access-Control-Allow-Origin": "*",
    },
    contentType: "application/json;charset=UTF-8",
    success: function (res) {
      res = JSON.parse(res);
      Cookies.set('ptoken','wwwww');
      console.log(res);
      if (res.code == 0) { //登陸成功
        console.log(res);

      } else {
        console.log(res.message);
      }
    },
    error: function () {
      alert('登錄失敗');
    }
  })
}
}
回答
編輯回答
陪我終

1.不停循環(huán)是你一開始 location.href 做了微信登錄授權(quán)的跳轉(zhuǎn),而目標(biāo)頁應(yīng)該就是本頁吧,那ajax success還未響應(yīng),'ptoken'這個(gè)怎么可能會(huì)有值,自然就一直 跳轉(zhuǎn)下去。
2.ajax url 里要加協(xié)議https://、http://
3.ajax data 不用轉(zhuǎn)成字符串,即使是get方式也是。
4.你的wx_login中completion沒調(diào)用
5.讓服務(wù)器端回傳json格式,你改成dataType:'JSON',這樣就不用JSON.parse(res)轉(zhuǎn)換了
6.res.code == 0不嚴(yán)謹(jǐn),要用 ===
7.Cookies.set('ptoken','wwwww')這種操作必須放在 登錄成功 的條件內(nèi),不然你如果存入undefined,取出來的是'undefined',這是邏輯問題
8.登錄授權(quán)里,redirect_uri部分要轉(zhuǎn)碼

大體流程邏輯如下:
邏輯

2018年6月21日 08:53