iT邦幫忙

0

ajax 出現 error 時跳轉?

ajax

 error: function(jqXHR, textStatus, errorThrown) {
      errorGo(textStatus, errorThrown);
    },

errorGO()

function errorGO(status, error){
  console.log('textStatus: %s, errorThrown: %s', status, error, location, type);
  alert('Something went wrong :(');
  $.ajax('https://xx.x.com/x/query.php', {
    type: 'POST',
    data: {
      'message': status,
      'error': error
    },
    dataType: "text",
    crossDomain: true,
    success: function(){
      location.href = '/wrong';
      console.log('go /wrong');
    }
  });
  return;
}

query.php

將 status 和 error 丟到數據庫

怪異的是:確實有順利丟數據庫。
也有印出 「go /wrong」
但是就是沒有執行 location.href = '/wrong'; 跳轉?
我也把 alert 拿掉, return; 拿掉,都還是一樣結果

補充:
我甚至只留下 console.loglocation.href = '/wrong';
但是他只有印出 console ,就是不執行跳轉

看更多先前的討論...收起先前的討論...
人家錯誤訊息就是告訴你跨域沒成功了。
你怎麼會說跨域有成功??

還有,不要想要用localhost來處理跨域的問題。永遠都是過不去的。

再來~~~你需要加強一下基本。看你第三個程式碼這樣用。我就快昏了。
一個function內居然可以用方式宣告的方式運行??
要記得javascript是很笨的語言啦。照理說你那邊會報錯才對。

可以的話,不要用片段的。
asys0512 iT邦新手 1 級 ‧ 2018-10-09 17:25:43 檢舉
我跨域是串 slack ,確實有成功發訊息到我的 slack 頻道
asys0512 iT邦新手 1 級 ‧ 2018-10-09 17:27:15 檢舉
第三個如果是你會怎麼寫?
fillano iT邦超人 1 級 ‧ 2018-10-09 17:40:47 檢舉
問題可能發生在任何地方,搞不好就在你沒貼出來的那一行的...而且有的問題不看前後文還不知道怎麼發生,所以建議還是盡量把要問的程式碼貼完整一點,當然機密及隱私可以用個XXX之類的代替。
froce iT邦高手 2 級 ‧ 2018-10-09 18:42:29 檢舉
很好奇第3個程式碼是怎麼想出來的...Orz
沒跳錯誤嗎?
asys0512 iT邦新手 1 級 ‧ 2018-10-10 12:12:34 檢舉
沒有跳錯誤,晚點我再補個完整的程式碼
asys0512 iT邦新手 1 級 ‧ 2018-10-10 12:13:09 檢舉
TO fillano,了解,所以正常來說這段是可以運行的?
asys0512 iT邦新手 1 級 ‧ 2018-10-10 12:13:26 檢舉
TO froce:這是我想到的方式,如果你有更好的寫法
froce iT邦高手 2 級 ‧ 2018-10-10 15:17:12 檢舉
Uncaught SyntaxError: Unexpected token :

我丟你第3個function code進chrome告訴我的...
你把function和object搞混了吧?
asys0512 iT邦新手 1 級 ‧ 2018-10-11 11:16:50 檢舉
已補充
我是新版的 chrome 沒有報錯噎
froce iT邦高手 2 級 ‧ 2018-10-12 00:31:21 檢舉
在success的區塊加個 console.log(location)看看跑什麼出來?

1 個回答

0

alert完要按確定才會執行下一行…

asys0512 iT邦新手 1 級 ‧ 2018-10-09 16:50:35 檢舉

我按了確定之後....沒有反應

fillano iT邦超人 1 級 ‧ 2018-10-09 17:35:10 檢舉

即使沒有任何工具,透過console.log()也可以做debug:如果在某行插入的console.log()沒跑,那肯定問題是在這之前出現,前後夾擊,就會知道問題出在哪裡。

我要發表回答

立即登入回答