[問題] alert( $.ajax )

看板Ajax作者 (潑潑)時間14年前 (2012/02/03 16:15), 編輯推噓3(305)
留言8則, 6人參與, 最新討論串1/4 (看更多)
alert( login() ); function login(){ $.ajax({ url: './data.php', type: 'post', async: false, data: {action:'login' }, error: function(xhr) { alert('Ajax request 發生錯誤'); $(e.target).attr('disabled', false); }, success: function(r) { return r; } }); } ------------------------------------------- 如果我把function裡的return改成 alert(r) 是看得到值 但外面的alert( login() ); 卻是 undefined 為什麼? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.105.121.221

02/03 16:59, , 1F
login() 沒有 return 任何一個東西呀...
02/03 16:59, 1F

02/03 17:03, , 2F
我該怎麼把success的r傳出去呢? 在外層宣告變數來儲存?
02/03 17:03, 2F
function login(){ var re=''; $.ajax({ url: './data.php', type: 'post', async: false, data: {action:'login' }, error: function(xhr) { alert('Ajax request 發生錯誤'); $(e.target).attr('disabled', false); }, success: function(r) { return r; } }); return re; } 加了兩行,可以取到了,原來是區域變數的問題 但我覺得我的寫法是不是有點蠢(粗糙) 有沒有好一點的寫法? ※ 編輯: Qiqi 來自: 112.105.121.221 (02/03 17:07)

02/03 17:14, , 3F
反正都是要 alert, 為什麼不在 success 裡面直接做?
02/03 17:14, 3F

02/03 17:19, , 4F
alert只是給自己看,實際上是要存在變數給別的地方用
02/03 17:19, 4F

02/03 17:45, , 5F
以前找到的答案是 windows.xxx=?
02/03 17:45, 5F

02/03 17:55, , 6F
要存變數也可以用個input hidden。
02/03 17:55, 6F

02/03 21:20, , 7F
只是要給自己看的,就用console.log吧!
02/03 21:20, 7F

02/05 06:28, , 8F
console.log會在ie8以下出bug...要放上網路前記得砍掉
02/05 06:28, 8F
文章代碼(AID): #1FAvUMvI (Ajax)
討論串 (同標題文章)
文章代碼(AID): #1FAvUMvI (Ajax)