2016-12-07 6 views
1

私はFreeCodeCampチャレンジに従ってランダムなクォートジェネレータを作成しようとしていますが、私が実際に要求しているjsonオブジェクトを実際に取得していることを確認するテストを作成することから始めたいと思います。私が訪れたとき、「引用符」と次のコードへのidが設定されたシンプルなH1要素(jQueryのはCodePenにアップロードされている)json requestに対する応答の内容を確認しますか?

function genQuote() { 
    var output = $.getJSON("http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1&callback=", function(data){ 
    var theQuote = data.content; 
    var Author = data.title; 

    document.getElementById('quote').innerHTML = theQuote; 
    }); 
} 

問題のURLを持つJSONオブジェクトのようにはっきり見えるものを示し、私には、しかし、私の関数は#quote項目をまったく変更しません。

+0

ルックアップCORS - ブラウザの開発者用ツールコンソールを確認 –

答えて

1

$.getJSON()コールをjsonpリクエストに変換するのではなく、JSONをリクエストするために、URLから&callback=を削除します。また、単純なオブジェクトではなく配列が返されます。あなたの質問にコメントが言うようにブラケット表記

function genQuote() { 
    var output = $.getJSON("https://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1", function(data){ 

    var theQuote = data[0].content; 
    var Author = data[0].title; 

    document.getElementById('quote').innerHTML = theQuote; 
    }) 
} 

$(genQuote); 

jsfiddle https://jsfiddle.net/gpyx6jLy/

0

を使用してオブジェクトにアクセスすることは、これはクロスオリジン・リクエスト共有(CORS)の問題です。 APIは、アクセスを許可しないAccess-Control-Allow-Originヘッダーとして "http://null"を返しています。

これはAPIサーバーのバグであり、おそらくそれを使用できないようです。

+0

問題は、質問の 'javascript'が' JSON'のリクエストではなく、 'jsonp'リクエストを出しているということです。 stacksnippetsは、 '$ .getJSON()'にパラメータとして渡されたURLではなく、 'null'起点を持ちます。リクエストの発信元とURLのプロトコルも一致する必要があります。 – guest271314

関連する問題