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

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

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

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

jQuery

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

Q&A

解決済

1回答

3517閲覧

REST APIのJSONを、urlから、Javascriptで取得したい

igar

総合スコア110

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2018/06/28 09:50

編集2018/06/28 09:53

REST APIのJSONを、url http://ip.jsontest.comから、Javascriptで取得したいのですが、

デベロッパーツールのコンソールで以下コードを試すと、

var obj = $.getJSON('http://ip.jsontest.com', function(data) {});

(jQueryを使っています。)

以下のようにGETエラーが出てしまいます。

jquery.min.js:4 GET https://ip.jsontest.com/?_=15301... 0 () send @ jquery.min.js:4 ajax @ jquery.min.js:4 n.(anonymous function) @ jquery.min.js:4 getJSON @ jquery.min.js:4 (anonymous) @ VM16777:1

他のJSONのURLだと、取得できるものもあるのですが、このようにできないものもあり、その違いがわかりません。

何が原因なのでしょうか。?

例えばこちらのURLですと、うまく取得できます。

var obj = $.getJSON('https://qiita.com/api/v2/users/TakahiRoyte', function(data) {});

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

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

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

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

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

m.ts10806

2018/06/28 09:53

同じURLをブラウザから実行するとどうなりますか?
igar

2018/06/28 09:55

上であげた2つのURL共に、chromeブラウザから閲覧できます。ソースコードもJSONそのままです。
arasi

2018/06/28 09:57

あなたのサイトは https・httpどちらですか
igar

2018/06/28 09:58

デベロッパーツールのコンソールを開いたサイトは、httpsです。
m.ts10806

2018/06/28 10:11

表示されたJSONを構文チェックサービスにかけてみてください。
igar

2018/06/28 10:17

https://jsonlint.com こちらのサイトでチェックしておりますが、特に構文間違いはないようです。
guest

回答1

0

ベストアンサー

もう答え出てますね。
jQuery でも fetchAPI でも何でも良いですが、https から http で配信されるコンテンツをリクエストすることは出来ません。

ニコニコ動画に http で json を返す api あったので試してください。
http://ip.jsontest.com と同様のエラーが出るはずです。

fetch('http://www.nicovideo.jp/marquee/chblog_marquee.json') // -> 失敗する fetch('http://ip.jsontest.com') // -> 失敗する fetch('https://qiita.com/api/v2/users/TakahiRoyte') // -> 成功する fetch('https://jsonplaceholder.typicode.com/posts') // -> 成功する

https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content/How_to_fix_website_with_mixed_content

投稿2018/06/28 13:15

og24715

総合スコア832

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問