2012-08-27 87 views
2

JSON URL的輸出:http://en.wikipedia.org/w/api.php?format=json&action=opensearch&search= 「+ STR +」 &命名空間= 0 &建議=顯示JSON請求

這裏 「STR」 可以是任何2-3焦炭爲例 STR = 'NAS' 然後JSON網址:http://en.wikipedia.org/w/api.php?format=json&action=opensearch&search=nas&namespace=0&suggest=

我想抓住所有的結果,並把這些結果以表格

我嘗試AJAX,JSON和jQuery 任何一個可以給我工作的代碼這樣做。

我的虛擬代碼爲: -

<!DOCTYPE html> 
<html> 
<head> 
<script type="application/javascript"> 
function FillSearchBox(str) 
{ 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.onreadystatechange=function() 
    { 

     if (xmlhttp.readyState==4 && xmlhttp.status=200) 
     { 
      //Pointer never Comes in this Section (If I Debuug I got xmlhttp.status=0 every time) 
      var JSONObject = JSON.parse(xmlhttp.responseText); 
     } 
    } 
    var strr= "http://en.wikipedia.org/w/api.php?format=json&action=opensearch&search="+str+"&namespace=0&suggest="; 
    xmlhttp.open("GET",strr,true); 
    xmlhttp.send(); 
} 
</script> 
</head> 
<body> 
<form> 
<input type="text" name="wikisearch" id="" onkeyup="FillSearchBox(this.value)" /> 
</form> 
<!-- add Table or Div Here --> 
</body> 
</html> 
+1

您無法執行跨域JSON請求。 mediawiki是否提供jsonp? – Eric

+0

不,但我有jonfm – user1627881

+0

http://en.wikipedia.org/w/api.php?format=jsonfm&action=opensearch&search=nas&namespace=0&suggest= – user1627881

回答

1

您需要使用JSONP做跨域請求:

function gotData(d) { alert(d); } 

var s = document.createElement('script'); 
s.src = "http://en.wikipedia.org/w/api.php?format=json&action=opensearch&search="+str+"&namespace=0&callback=gotData"; 
s.appendTo(document.body); 

注意,這是與jQuery容易得多。