2016-08-22 82 views
1

我需要捕獲客戶端瀏覽器發送給Rollbar的所有JavaScript錯誤。我嘗試了很多解決方案,如window.addEventListener和覆蓋console.error方法,但沒有爲我工作。捕獲React上的所有錯誤15.3.1

我已經得到了Ajax錯誤,就像圖像上的jqXHR一樣,但它在必須時間上的信息較少。

1

但上述消息(紅色)我不能。

如何真正使用React獲取所有瀏覽器錯誤消息?

回答

0

我不認爲你看到的錯誤與React有關,它是由你的瀏覽器拋出的,因爲你的腳本正在嘗試發出一個跨域請求。

看一看本作更多的細節:

How does Access-Control-Allow-Origin header work?

+0

我可以得到一些不是「錯誤」的字符串作爲錯誤細節更多? –

+0

如果你看看這個http://stackoverflow.com/questions/5018566/catching-xmlhttprequest-cross-domain-errors它看起來像你有一個onError事件可用,但控制檯的錯誤將始終發生,它由您的瀏覽器記錄和看起來你出於安全原因不能碰它。 – Giuseppe

0

我認爲這不是真的有可能趕在一個地方,所有的瀏覽器的錯誤,這是沒有反應過來的問題。

例如,如果你想趕上所有的API錯誤,基本技術是包裝像所有的API調用簡單的函數:

/** 
* @returns Promise 
*/ 
export default function httpRequest(type, path, params, headers) { 
    return someHttpLibrary.request(type, path, params, headers) 
     catch((error) => { 
      logTheStuff(error); 
     }); 
} 

你應該調用該函數,而不是直接請求。另外,如果您需要,您可以在一個地方記錄所有請求並更改庫; D

關於其他錯誤,例如渲染或邏輯錯誤中的錯誤,哨兵隊寫了錯誤處理好文章:

https://blog.getsentry.com/2016/01/04/client-javascript-reporting-window-onerror.html

而且也,哨兵是非常好的工具來處理陣營錯誤:https://getsentry.com/for/react/