作者gn00386614 (EXSA)
看板Ajax
标题[问题] JS有办法得知连结的伺服器状态吗?
时间Thu Mar 2 14:12:29 2017
功能需求是要去一一检查特定的网址,当中如果有网站挂掉的话会通报管理者
目前的想法是用回圈的方式将网址代入iframe,但不知道有甚麽方法可以取得iframe内网站伺服器的状态
请问JavaScript有办法做到这样的功能吗?还是说必须用其他的工具才能达成这个功能呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.133.229.31
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1488435152.A.F95.html
1F:推 LPH66: XMLHttpRequest 送出去→等 readystate >= 2→查 .status 03/02 14:22
2F:→ LPH66: 这应该可行... 03/02 14:23
3F:→ LPH66: 这个 status 值是 HTTP status code (200, 404 之类的东西) 03/02 14:23
谢谢,因为还是初学者不知道怎麽下关键字
理论上是不是只要向该网址发出请求也不用特意将网页内容显示呢?
※ 编辑: gn00386614 (220.133.229.31), 03/02/2017 14:27:47
4F:推 LPH66: 这其实是最基本的 ajax 套路, 关键字就是 XMLHttpRequest 03/02 22:49
5F:→ LPH66: readyState 2 表示收到 HTTP header 了, 大致上就能判断 03/02 22:50
6F:→ LPH66: 你要查询的东西; 一般你去找的资源多半会说 readyState 4 03/02 22:51
7F:→ LPH66: 那是代表他需要内容所以才要到 4 才能操作 03/02 22:51
8F:→ LPH66: 而你只是要检查网站是否正常回应, 这样 2 就足以判断了 03/02 22:51
9F:推 jmlntw: 要注意跨网域(CORS)的问题 03/02 22:57
再次感谢,昨天爬了一下午的文,目前跨域问题仍无法解决,使用的环境是tomcat8.5
照网路上去设置Access-Control-Allow-Origin的filter还是没办法只靠前端来取得HTTP的回应
难道非要搭配後端不可吗?
※ 编辑: gn00386614 (220.133.229.31), 03/03/2017 09:33:14
10F:→ ssccg: Access-Control-Allow-Origin是你要连的那些网站要设喔 03/03 09:47
11F:→ mrbigmouth: 取巧的办法是在目标server上摆一只js档 内容是将某个 03/03 13:23
12F:→ mrbigmouth: 广域变数设为某个值 然後setInterval不断载入该scrip 03/03 13:24
13F:→ mrbigmouth: t 只要确认该广域变数的值有被改变就代表server没问 03/03 13:24
14F:→ mrbigmouth: 题 没被改变就代表server down了 03/03 13:24
15F:→ mrbigmouth: 这其实也算是jsonp的应用(?) 03/03 13:25
16F:推 TETZ: ifrma不能access不同domain的东西但我记得可以用postMessage 03/04 12:27
17F:→ TETZ: 但是要请对方加 03/04 12:27
18F:→ TETZ: *iframe 03/04 12:28
19F:推 z0991100238: 最近看到有es6标准可用的fetch 做这个比xhr写定义感 03/05 00:28
20F:→ z0991100238: 觉快多了 03/05 00:28
21F:→ z0991100238: 跨网域问题chrome有plugin可以试试看 03/05 00:29
22F:推 lolikung: 有跨网域问题的话可以改用 Img 03/10 19:27
23F:推 lolikung: 然後判断图片有无正常载回 03/10 19:28