【发布时间】:2013-11-26 00:44:39
【问题描述】:
由于 REST 调用,我无法从对象 XMLHttpRequest 获得响应。我知道结果在对象内部,因为当我有结果要返回时对象大小更大,但无论如何我都无法访问它们。这是我对服务器的 javascript 请求:
function getMarkersByCategory(category) {
var urlServer = 'http://localhost:8080/api/mapit/getcategory';
return loadContent(urlServer,category);
}
function loadContent(url, category) {
var mypostrequest = new ajaxRequest();
mypostrequest.onreadystatechange = function() {
if (mypostrequest.readyState == 4) {
if (mypostrequest.status == 200 || window.location.href.indexOf("http") == -1) {
return displayMarkers(mypostrequest);
}
else {
alert("An error has occured making the request");
}
}
}
var parameters = "?category=" + category ;
mypostrequest.open("GET", url + parameters , true);
mypostrequest.send(null);
}
function ajaxRequest() {
var activexmodes = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
if (window.ActiveXObject) { //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
for (var i = 0; i < activexmodes.length; i++) {
try {
return new ActiveXObject(activexmodes[i]);
}
catch (e) {
//suppress error
}
}
}
else if (window.XMLHttpRequest) // if Mozilla, Safari etc
return new XMLHttpRequest();
else
return false;
}
function displayMarkers(data) {
alert(data);
var jsonContent = data // I can´t find any property of the object with the response
}
最后这是我的 Java Web 服务的响应:
@GET
@Produces("text/plain")//I have tried with ("application/json") too
@Path("/getcategory")
public String getByCategory(@QueryParam("category") String category) {
List<MapItBean> list = mapItPointDao.getMapItPointsByCategory(category);
String result = MapItBeanHelper.jsonizeMapitList(list);
System.out.println(result);
return result;
}
我也尝试过使用 jquery,但我有同样的问题,我无法得到任何回应。 提前致谢。
【问题讨论】:
-
感谢 jQuery,现在我不知道如何处理内置的 JavaScript 类(并且在原始类型中跨浏览器进行处理)。哈哈。
-
您的浏览器是否注意到其开发工具中的任何错误(通常以
F12、Ctrl+Shift+J或Command+Shift+J打开)?发出此请求的页面是否也来自http://localhost:8080/?
标签: java javascript ajax rest