2017-06-14 12 views
0

私は初心者で、ajaxを学び、jsonファイルで作業しようとしています。私はJSONのフォーマットされたデータを使用したいと思います。しかし、私の要求の結果は空のテキストです。 更新:ここでは、コードの私の作品です:gitリポジトリからjson形式のデータを抽出しようとします。

var quoteContainer=document.getElementById("random-quote"); 
var btn=document.getElementById("btn"); 
btn.addEventListener("click",function(){ 
    var myRequest=new XMLHttpRequest(); 

    myRequest.open("GET","https://raw.githubusercontent.com/4skinSkywalker/Database-Quotes-JSON/master/quotes.json",true); 
    myRequest.addEventListener('load', function() { 
     var myData=JSON.parse(myRequest.responseText); 
     console.log(myRequest.responseText); 
     renderHTML(myData); 
    }); 
    myRequest.send(); 
}); 


function renderHTML(data){ 
    var LenJson=data.length; 
    var Num=Math.random()*LenJson; 
    console.log(Num); 
    var QuoteString="<p id='quote-text'>"+data[i].quoteText+"</p>" 
    var AuthorString="<p id='quote-author'>"+data[i].quoteAuthor+"</p>" 
    quoteContainer.insertAdjacentHTML('beforeend',QuoteString); 
    quoteContainer.insertAdjacentHTML('beforeend',AuthorString); 
} 

それはまだすべてのデータを返しません。どうして?

+0

は、あなたが使用してローカルファイルを、これをオフに実行しようとするすべての偶然です'file://' ...? –

+0

@PatrickRoberts私は 'brackets'をテキストエディタとして使用しています。これは' chrome'ブラウザでコードを実行します。さて、私が言ったように、私は 'javascript'を学び始めました。 – Dalek

+0

[Chromeのファイルドメインのクロスドメイン問題の予期しない複製]の可能な複製(https://stackoverflow.com/questions/6060786/file-url-cross-domain-issue-in-chrome-unexpected) –

答えて

1

var quoteContainer = document.getElementById("random-quote"); 
 
var btn = document.getElementById("btn"); 
 

 
btn.addEventListener("click", function() { 
 
    var myRequest = new XMLHttpRequest(); 
 

 
    myRequest.open("GET", "https://raw.githubusercontent.com/4skinSkywalker/Database-Quotes-JSON/master/quotes.json", true); 
 
    
 
    myRequest.addEventListener('load', function() { 
 
    var myData = JSON.parse(myRequest.responseText); 
 

 
    renderHTML(myData); 
 
    }); 
 
    
 
    myRequest.send(); 
 
}); 
 

 
function renderHTML(data) { 
 
    var LenJson = data.length; 
 
    var Num = Math.floor(Math.random() * LenJson); 
 
    
 
    var QuoteString = "<p id='quote-text'>" + data[Num].quoteText + "</p>"; 
 
    var AuthorString = "<p id='quote-author'>" + data[Num].quoteAuthor + "</p>"; 
 
    
 
    quoteContainer.insertAdjacentHTML('beforeend', QuoteString); 
 
    quoteContainer.insertAdjacentHTML('beforeend', AuthorString); 
 
}
<button id="btn" type="button">Generate Random Quote</button> 
 
<div id="random-quote"></div>

+0

答えをありがとう。私はすでに 'myRequest.send();'を元のコードで持っていましたが、まだ出力はありません。私は自分のコード全体を投稿した。 – Dalek

+0

@Dalekフルコードを更新しました。変数名が不足していて、乱数を整数化するのを忘れてしまった。デバッグするときは、コンソールからエラーがないかどうかを確認してください。これは、コードに何が間違っているかを正確に示しています。私があなたがそれを正しく書いたと仮定していた時間全体。 –

関連する問題