我能够使用JSON将数据发送到服务器并获取相应的数据,但在我正确处理返回的数据之前,我只是尝试将返回的JSON数据作为警报输出。我无法理解为什么这不起作用。
我确实收到了警告,但是文本值显示为“未定义” - 我不知道我需要做什么来打印整个JSON对象或其中的一部分。
两个System.out.println语句都确认正确的信息来自servlet。
servlet类:
public class EditItemServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/json");
PrintWriter out = response.getWriter();
String itemToEdit = request.getParameter("selectedItem");
System.out.println(itemToEdit);
String myString="";
try {
myString = new JSONObject().put("selectedItem", itemToEdit).toString();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(myString);
out.print(myString);
}
}
以下是发送请求并处理响应的jQuery:
$("#edit-form").hide();
$("#edit-item-btn").click(function () {
isEditClicked = "yes";
$("#edit-form").show();
var editValue = $("#edit-item-select").val();
$.getJSON("EditItem", {"selectedItem" : editValue}, displayEditValues());
alert("wassup");
});
function displayEditValues(data) {
alert(data);
}; // each
答案 0 :(得分:3)
您需要将displayEditValues
作为回调传递而不是调用它displayEditValues()
:
$.getJSON("EditItem", {"selectedItem" : editValue}, displayEditValues);
答案 1 :(得分:1)
$.getJSON("EditItem",{"selectedItem":editValue},function(){displayEditValues()});
通过这种方式,您可以将任意数量的参数传递给displayEditValues()
函数,例如
function(){displayEditValues(param1, param2, ..., paramN)}
答案 2 :(得分:1)
试试这个:
displayEditValues = function(data) {
alert(data);
};
$.getJSON("EditItem", {"selectedItem" : editValue}, displayEditValues);
甚至
$.getJSON("EditItem", {"selectedItem" : editValue}, function(data) { alert(data); } );