質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

3回答

39360閲覧

js/jqueryで指定したURLのステータスコードを取得したい

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2014/09/20 12:12

JavaScriptもしくはjQueryを使って指定したURLのHTTPステータスコードを取得する方法がわからないので教えて頂けないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

同じドメインであれば、以下のようにすることでもステータスを取得出来ます。

lang

1$.ajax({ 2 url: 'test.html', 3 type: 'GET' 4}).always(function (jqXHR) { 5 console.log(jqXHR.status); 6});

lang

1$.ajax({ 2 url: 'test.html', 3 type: 'GET', 4 statusCode: { 5 404: function() { 6 alert('page not found'); 7 } 8 } 9});

また、jQueryのajaxメソッドは、success、errorなどといったプロパティにより、statusに応じた処理を設定出来ます。

lang

1$.ajax({ 2 url: 'test.html', 3 type: 'GET', 4 success: function(data){ 5 console.log(data); 6 } 7});

さらに、ajaxはDeferredオブジェクトというものを返し、doneやfailなどのメソッドにより、statusに応じた処理を呼び出すことができます。

lang

1$.ajax({ 2 url: 'test.html', 3 type: 'GET' 4}).done(function() { 5 alert('成功'); 6});

これらは、ajax以外にもgetなどのメソッドでも同様です。詳しくは以下を見てください。
APIドキュメント(英語)

なお、外部のサイトであれば同一生成元ポリシーというものに引っかかりますので注意が必要です。
詳しくは以下のURLを見てみてください。
http://garafu.blogspot.jp/2013/07/blog-post.html

投稿2014/09/21 06:09

JohnSmith

総合スコア198

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

昔であれば、後に示すコードで取得できたと思うのですが(xhr.statusのところですね)、
最近はセキュリティ上の都合で、通信される側が 'Access-Control-Allow-Origin' ヘッダーを出力していないと
他のサイトへはXMLHttpRequest経由でデータ取得できないようにしているブラウザが出てきました。

URLというのが 自サイトやそういうのを許可したサイトであれば下記方法で取得できると思いますので
一応サンプルとして載せておきますが、外部サイトに対して行いたいんですよね?

なお、GET以外だと応答が異なる場合や、セッションに応じて応答が異なる場合もありますのでその点も気を付けてください。

lang

1$.ajax({ 2 url: "https://teratail.com", 3 type: "GET", 4 success: function(xml, textStatus, xhr) { 5 console.log(xhr.status); 6 }, 7 complete: function(xhr, textStatus) { 8 console.log(xhr.status); 9 } 10});

lang

1$.get("https://teratail.com", 2 function(data, statusText, jqXHR){ 3 console.log(jqXHR.status); 4});

投稿2014/09/20 13:49

flied_onion

総合スコア2604

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

次の情報が参考にはなりませんか?

jQuery の load() http://www.webdesignleaves.com/wp/jquery/489/ より

...
load(url, parameters, callback)
...
パラメータと戻り値

url (String)
要求を送信するサーバ側リソース(読む込むデータ)のURL。
オプションとして jQuery セレクタを使える 。

parameters (String|Object|Array) オプション。
リクエストと一緒に送信するデータ(要求のパラメータとして渡すべきデータ)を指定。
データ型は、文字列、 オブジェクト、オブジェクトの配列のいずれか。
文字列はそのままクエリ文字列として使用される。
オブジェクトは、プロパティがシリアライズされ、 適切にエンコードされたパラメータとして要求に渡される。
オブジェクトの配列は、その nameプロパティと valueプロパティで、名前と値のペアを 指定。
オブジェクトまたは配列で指定した場合、要求には POST メソッドが使用される。
省略した場合と、文字列で指定した場合は、GET メソッドが使われる。

callback (Function) オプション。
応答データ(取得したデータ)がロードされた後に呼び出されるコールバック関数。
この関数に渡されるパラメータは、
・response:応答テキスト(取得したデータ)、
・status:ステータス文字列(success、 error、notmodified、timeout、parsererror)、
・xhr:XMLHttpRequest インスタンス。
...

投稿2014/09/20 13:57

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問