-1
我試圖模擬的ping的jsfiddle即一個網站如果一個網站(比如www.google.com)可用,則顯示地位,「向上」,否則「向下」製作CORS請求的jsfiddle
AJAX將無法工作,因爲它將成爲CORS請求。 我試圖使用圖像源技巧,但它失敗(更新的代碼)。
的jsfiddle組圖像爲 「
https://fiddle.jshell.net/_display/www.google.com」,而不是 「www.google.com」 的源
var sites = {
google: {
url: "http://www.google.com",
id: "googleStatus"
},
dummy: {
url: "http://www.dummysitealphabeta2.com",
id: "dummySiteStatus"
}
}
pingSite(sites.google); // Should update status to "Up"
pingSite(sites.dummy); // Should update status to "Down"
// ping site using image trick wiz. Add source of site to image
// and add handler to image onload or onerror
function pingSite(site) {
var image = new Image();
image.src = site.url;
image.onload = function() {
console.log("loading loaded for " + site.url + "successfully");
}
image.onerror = function() {
console.log("Image loading failed for " + site.url);
}
}
// Using AJAX - Won't work because of CORS
function getStatus(site) {
$.ajax(site.url).done(function() {
// Http 200 OK
$(site.id).html("Up");
}).fail(function() {
// HTTP 401,
$(site.id).html("Down");
});
}
<table>
<tr>
<td>Google</td>
<td id="googleStatus"></td>
</tr>
<tr>
<td>Dummy Site</td>
<td id="dummySiteStatus"></td>
</tr>
</table>