0
我想使用JavaScript檢查遠程網站是否可訪問。檢查是否可以通過JavaScript訪問遠程網站
<button onclick="check()">check</button>
<script>
function check(ip)
{
var xhr = new XMLHttpRequest();
var target = "https://letsencrypt.org/";
var rndNum = Math.round(Math.random() * 10000);
xhr.open('HEAD', target + "?rand=" + rndNum, true);
xhr.send();
xhr.addEventListener("readystatechange", processRequest, false);
function processRequest(e)
{
if (xhr.readyState == 4)
{
if (xhr.status >= 200 && xhr.status < 304)
{
alert('up');
}
else
{
alert('down');
}
}
}
}
</script>
此代碼的工作,但僅限於本地target
S,如跨域請求被阻止。該代碼可以執行here,當按鈕被點擊的JavaScript控制檯日誌:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://letsencrypt.org/?rand=6236. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing). (unknown)
我相信我讀過,這應該與遠程地址以及莫名其妙的工作。
一般來說,如果網絡服務器應答,我認爲可達,甚至404
返回碼告訴我,網絡服務器已啓動並且答案,只是特定的資源已關閉。
如何修改我的功能,檢查遠程地址的連通性?
您嘗試訪問的遠程網站需要有'Access-Control-Allow-Origin:*'才能使用(或僅將您的域名列入白名單) – Raymond
另外,如果網站返回4xx代碼 – paqash
@Raymond如果遠程服務器具有'Access-Control-Allow-Origin:*'(或白名單),那麼這個函數應該可以工作? @paqash是的,謝謝!我需要把它整理出來! – MikeDyson