[問題] JS有辦法得知連結的伺服器狀態嗎?

作者: gn00386614 (EXSA)   2017-03-02 14:12:29
功能需求是要去一一檢查特定的網址,當中如果有網站掛掉的話會通報管理者
目前的想法是用迴圈的方式將網址代入iframe,但不知道有甚麼方法可以取得iframe內網站伺服器的狀態
請問JavaScript有辦法做到這樣的功能嗎?還是說必須用其他的工具才能達成這個功能呢?
作者: LPH66 (-6.2598534e+18f)   2017-03-02 14:22:00
XMLHttpRequest 送出去→等 readystate >= 2→查 .status這應該可行...這個 status 值是 HTTP status code (200, 404 之類的東西)這其實是最基本的 ajax 套路, 關鍵字就是 XMLHttpRequestreadyState 2 表示收到 HTTP header 了, 大致上就能判斷你要查詢的東西; 一般你去找的資源多半會說 readyState 4那是代表他需要內容所以才要到 4 才能操作而你只是要檢查網站是否正常回應, 這樣 2 就足以判斷了
作者: jmlntw (吉米林)   2017-03-02 22:57:00
要注意跨網域(CORS)的問題
作者: ssccg (23)   2017-03-03 09:47:00
Access-Control-Allow-Origin是你要連的那些網站要設喔
作者: mrbigmouth (大嘴先生)   2017-03-03 13:23:00
取巧的辦法是在目標server上擺一隻js檔 內容是將某個廣域變數設為某個值 然後setInterval不斷載入該script 只要確認該廣域變數的值有被改變就代表server沒問題 沒被改變就代表server down了這其實也算是jsonp的應用(?)
作者: TETZ (你今天宅了嗎?)   2017-03-04 12:27:00
ifrma不能access不同domain的東西但我記得可以用postMessage但是要請對方加*iframe
作者: z0991100238 (天漪)   2017-03-05 00:28:00
最近看到有es6標準可用的fetch 做這個比xhr寫定義感覺快多了跨網域問題chrome有plugin可以試試看
作者: lolikung (幹麼查我?)   2017-03-10 19:27:00
有跨網域問題的話可以改用 Img然後判斷圖片有無正常載回

Links booklink

Contact Us: admin [ a t ] ucptt.com