javascriptでリンク切れチェックをする方法
スポンサーリンク
リンク切れチェックをするWebサービスって色々存在しますが自身の製作中のサイトに同じような機能を持たせようといろいろ調べました。
方法としては、以下の2パターンがあるかと思います。
- クライアント側でjavascriptを使う
- サーバサイド側で(php、ruby、node.js、wgetとか)で得た結果をクライアントへ投げる
1.の場合は、ブラウザのクロスドメインの制限によってクライアントサイドからはできません。しかし、以下のjqueryプラグインを使用するとクライアントからAjaxできます。ただし、返ってくるのはresponse.text(チェック対象のサイトのhtmlのソース)だけでレスポンスコードは返ってきません。なのでスクレイピングとか、サーバへの接続テストレベルなら使えるかも。
jquery.fn/cross-domain-ajax at master · padolsey/jquery.fn · GitHub
1はそのまま、読みこむだけで使えるので特に、説明も不要かと思いますので、以下はサーバサイド側でやってみたときのソースを記載しています。
- サーバサイドのプログラム(node.js)
exports.urlckeck = function(req, res){ //postで送られてきたデータを取得。"url"変数にチェック対象のURLが入っています。 var option = { url: req.body.url }; console.log("check url existance of " + req.body.url); request.get(option, function (err, data) { if(err){ console.log(err); res.send({ "result" : "1", "url" : option.url, }); }else{ res.send({ "result" : data.statusCode, "url" : option.url, }); } }); }
- クライアントサイドのプログラム(javascript)
function checkURL(){ $.ajax({ type : "POST", url : "node.jsで待ち受けているURL", cache : false, data : { url : "チェック対象のURL" }, success: function(data){ if(data.result==200){ // 200の場合成功 }else{ // 200以外のレスポンスコードの場合 } }, error: function(data){ // node.jsに接続が失敗した場合 } }); }
実践Node.js プログラミング (Programmer's SELECTION)
- 作者: Mike Cantelon,Marc Harter,T.J. Holowaychuk,Nathan Rajlich,生越昌己,吉川邦夫
- 出版社/メーカー: 翔泳社
- 発売日: 2014/06/10
- メディア: 大型本
- この商品を含むブログ (1件) を見る