在Web浏览器上显示json
问题描述:
我们希望在使用Google API从servlet调用的浏览器上显示Google搜索结果的json。 handleSearchResult
不在浏览器上显示responseText。 此外,servlet并未将html的文本框中的查询字映射到Google API搜索URL(servlet)。由于在Web浏览器上显示json
home.html的
<html>
<head>
<script type="text/javascript">
var request;
function handleSearchResult(){
alert("hanldeRes");
//query.text = resp.items.name;
alert(request.responseText);
//var resp = eval('('+responseText+')');
//alert(resp.items.title);
}
function createHttpRequest()
{
alert("insideCreateRequest");
if(typeof XMLHttpRequest != "undefined") {
request = new XMLHttpRequest();
}
else if(window.ActiveXObject) {
request = new ActiveXObject("Msxml2.XMLHTTP");
if(!request) {
request = new ActiveXObject("Microsoft.XMLHTTP");
}
}
if(request) {
request.onreadystatechange = handleSearchResult();
request.open("GET","http://localhost:8080/WebSearchOptimization/SearchService",true);
request.send(null);
}
else {
alert("error on Page createHttpRequest");
}
return false;
}
function home_onclick()
{
alert("passingRequest");
createHttpRequest();
}
</script>
</head>
<body>
<br><br>
<form method="get" name="form">
<input type="text" id="query" name="query">
<input type="button" value="Search" id="search" onclick="home_onclick()">
<div></div>
</form>
</body>
</html>
答
我已经对你的code.Hope一些修改,这将帮助。
function handleSearchResult(){
if (request.readyState==4 && request.status==200)
{
alert(request.responseText);
}
}
function createHttpRequest()
{
//....
if(request) {
request.onreadystatechange = handleSearchResult;
var q = encodeURI(document.getElementById("query").value);
request.open("GET","http://localhost:8080/WebSearchOptimization/SearchService?"+q,true);
request.send(null);
}
//.....
}
究竟是什么问题? – 2012-03-20 12:44:44
SearchService是返回JSON响应的servlet,我们希望通过request.responseText来访问它,但是结果不会在请求对象中返回。 – Priyanka 2012-03-20 12:47:51