ajax中window.location.href不跳轉
- 2019 年 12 月 13 日
- 筆記
$.ajax({ url: '/Ajax/System/ajaxcheshi.ashx', dataType:'text', // datatype: 'json', type: 'post', data:user,//,quenceAge=quenceAge,ctertime=ctertime,tquencether=tquencether,Status=Status} success: function (data) { if (data == '1') { ; // window.location.href = 'ModelDatasequence.aspx'; // location.href = 'ModelDatasequence.aspx'; // window.location.href='http://www.hao123.com'; // $this.redirect('Management/ModelDatasequence.aspx'); setTimeout('; } else { ; } }) 解決方案 把你的 type='submit' 換成type='button' //原因: 因為有提交了一次表單。你的ajax是同步的,所以提交表單動作被掛起直到ajax完畢後(此時執行請求過一次伺服器),表單會提交,這樣就會執行頁面指定的action的地址, 而ajax回調success href的鏈接賦值不成功(這個問題有興趣的去研究) 參考http://www.cnblogs.com/horsen/p/6933038.html 注意起來一個情況:ajax+submit+同步----就是你用ajax請求伺服器,而且用的是同步的方式,並且你是通過點擊了type類型為submit的按鈕來觸發這個ajax。 這個時候,首先你點擊了submit,它會提交表單,但是由於你用了ajax的同步操作,submit的提交被阻塞,ajax先執行,這個時候,如果你在ajax的回調函數(如:success)中寫了document.location.href='xxx.html',它是執行了,的確是去執行了跳轉的,於是ajax完成了,那接下來就要把剛才的submit提交的請求完成。於是呢又要從xxx.html跳回到剛才那個頁面(無論你submit有沒有提交具體的數據,總之提交了之後如果後台沒有執行跳轉/重定向,它就要回到原來的頁面。)
