0

我对 JS 很陌生,在尝试通过 ajax 调用向我的服务器发送 GET 请求时遇到了问题。服务器正在接收请求并正确执行get,并且ajax调用确实成功(执行成功函数),但响应为null。在 Postman 中测试时,GET 可以正常工作。

阿贾克斯调用:

url = "http://localhost:8080/EmployeeLookup/SearchServlet?search=test"
$.ajax({
    url: url,
    type: 'GET',
    success: display,
    error: function(xhr,status,error){ alert(status); },
}); 

请求被发送到提供此页面的同一服务器,因此 Access-Control-Allow-Origin 没有任何问题。

任何帮助,将不胜感激。

提前致谢。

编辑:

显示功能:现在只是测试它是否为空。使用 === 进行测试也返回 true。

function display(json) { 
    if(json == null) { 
        $("#text").replaceWith(json); 
    } else { 
        $("#text").replaceWith("Response was null. "); 
    }
}

发回的 JSON 类似于:

{
     "seachResult": "someresult" 
}
4

1 回答 1

2

您应该始终指定您的 dataType 以便 jQuery 始终正确地解析它。

// the http portion is not needed for same-domain requests
var url = "/EmployeeLookup/SearchServlet?search=test"
$.ajax({
    url: url,
    type: 'GET',
    dataType: 'json',
    success: display,
    error: function(xhr,status,error){ alert(status); },
}); 

function display(json) {
    console.log(json);
}

测试数据是否返回比测试它是否为空需要更多的时间,如果您使用 jQuery 1.9+ 和 json 数据类型,它将永远不会为空。

于 2013-06-19T17:23:46.797 回答