2017-07-05 47 views
0

我試圖做一個隨機的報價機接收JSON,所以我開始了這個HTML來定義的元素:

<div id="quoteDisplay"> 
    <h1 id="quote">Quote</h1> 
    <h2 id="author">- Author</h2> 
    <button id="new">New Quote</button> 
</div> 
$('#new').on('click', function(e) { 
    e.preventDefault(); 
    $.ajax({ 
    url: 'http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1', 
    success: function(data) { 
     var post = data.shift(); 
     $('#author').html(post.title); 
     $('#quote').html(post.content); 
    } 
    }) 
}); 

然而對於一些當我點擊按鈕時,沒有任何反應,我不明白問題出在哪裏。我完全接受其他方法。

+1

什麼也沒有發生,因爲該請求返回一個空的對象速記語法來實現:http://jsfiddle.net/1chjtL6h/ –

+0

那是您使用的實際網址?如果是這樣,它看起來不正確。 – evolutionxbox

+2

[我怎樣才能調試我的JavaScript代碼?](https://stackoverflow.com/questions/988363/how-can-i-debug-my-javascript-code) – Liam

回答

0

您正在使用$.ajax,此方法的其中一個選項是method,未指定。

要了解更多關於請求方法,看看jQuery的文檔:http://api.jquery.com/jquery.ajax/

下面的代碼將正常工作。

$.get({ 
    url: 'http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1', 
    success: function(data) { 
     /* process response */ 
    } 
}) 

這裏有一個工作示例:http://jsfiddle.net/1chjtL6h/2/

1

原因該請求沒有返回上jsFiddles,是因爲該URL在「混合內容」輸入錯誤結果的事實。 (也就是說,在'HTTPS'頁面上請求'HTTP'源)。

我認爲你的代碼不工作的原因是因爲你沒有分配'Document Ready'語法到你的jQuery文件(如果這是你的JS文件的完整代碼)。由於您的代碼可以在here中看到。

這可以通過

$(function() { 
//YOUR CODE HERE 
} 

或者

$(document).ready(function(){ 
});