2016-03-24 87 views
0

即時通訊使用Javascript來閱讀服務器響應,我想過濾服務器給出的信息,所以我可以在我的網頁上設計風格。下面的API調用,提出:Javascript AJAX XMLHttpRequest

http://www.omdbapi.com/?t=pulp+fiction&y=&plot=short&r=json 

並檢索這些信息:

{"Title":"Pulp Fiction","Year":"1994","Rated":"R","Released":"14 Oct 1994", 
"Runtime":"154 min","Genre":"Crime, Drama","Director":"Quentin Tarantino", 
"Writer":"Quentin Tarantino (story), Roger Avary (story), Quentin Tarantino", 
"Actors":"Tim Roth, Laura Lovelace, John Travolta, Samuel L. Jackson",...} 

我需要從響應的信息進行篩選,只顯示標題和運行信息

<p id="Title">Movie title!</p> 
<p id="Runtime">Movie runtime!</p> 

對api的調用是:

xhttp.open("GET", "http://www.omdbapi.com/?t=pulp+fiction&y=&plot=short&r=json"+str, true); 
xhttp.send(); 

我已經閱讀了很多東西,但無法讓它工作,因爲我想,生病apreciate一些幫助!由於

+0

你的代碼在哪裏?你說你嘗試了很多東西,但卻無法讓它起作用。但我沒有看到你有任何證據表明你嘗試過。 – Barmar

回答

1

簡短的回答:

var xhr = new XMLHttpRequest(); 
xhr.onreadystatechange = function() { 
    if (xhr.readyState == XMLHttpRequest.DONE) { 
    // Step 1 below 
    var fullMovie = JSON.parse(xhr.responseText); 
    // Step 2 below 
    var movie = { title: fullMovie.Title, runtime: fullMovie.Runtime }; 
    // Step 3 below 
    document.getElementById('Title').innerText = movie.title; 
    document.getElementById('Runtime').innerText = movie.runtime; 
    } 
} 
xhr.open('GET', 'http://www.omdbapi.com/?t=pulp+fiction&y=&plot=short&r=json', true); 
xhr.send(null); 

運行示例:https://jsfiddle.net/mgjyv3q6/1/

現在, 「長的答案」,基本上你必須:

  1. 解析responseresponseText爲JSON。
  2. 用所需的字段創建一個新對象。
  3. 在UI中呈現檢索到的信息。

此外,您應該考慮開始使用jQuery或任何其他庫來幫助您處理DOM操作和AJAX請求。

+0

我該如何做第1步和第2步? –

+0

謝謝你!有效! –

+0

@TomasBond不客氣。另請注意,我附上了一個正在運行的示例以幫助您。 –