私は自分のウェブサイトにグーグルマップを埋め込んでいます、そして時々グーグルは404エラーで応答します。私はこれを知っておくべきだと知っていますが、思い出せず、すぐに見つけることができません。このサイトの他の404iframe関連の質問には回答がありませんでした。
Javascriptに404応答があるかどうかを確認するにはどうすればよいですか?応答が404のときにlocation.reload()を呼び出す予定です。
<iframe src="https://mapsengine.google.com/map/embed?mid=zGLD-nMIJQAg.k0gTyNlOPz_Q" width="640" height="480"></iframe>
エラーコードは次のとおりです。
GET https://khms0.googleapis.com/kh?v=159&hl=en&x=784456&y=1636828&z=22&token=122715 404 (Not Found)
私はこれを試しました:それは役に立ちませんでした。
var url = 'https://mapsengine.google.com/map/embed?mid=zGLD-nMIJQAg.k0gTyNlOPz_Q';
if (url.statusCode === '404'){
window.location.reload();
}
var url = 'https://mapsengine.google.com/map/embed?mid=zGLD-nMIJQAg.k0gTyNlOPz_Q';
function UrlExists(url) {
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
if (http.status != 404)
// do something
else
window.location.reload();
}
この関数を使用して、URLをパラメータとして渡します。ステータスが404でない場合は、何も起こらないか、他のことを行うと、要件に応じてページが更新されます。
私はこれが古い質問であることを知っていますが、フェッチを使用してそれを行うための更新された方法があります(IEでは機能しません):
function urlExists(url, callback) {
fetch(url, { method: 'head' })
.then(function(status) {
callback(status.ok)
});
}
let url = 'https://mapsengine.google.com/map/embed?mid=zGLD-nMIJQAg.k0gTyNlOPz_Q';
urlExists(url, function(exists) {
if (exists) {
// it exists, do something
} else {
// it doesn't exist, do something else
}
});