This question似乎对我要做的事情有了答案,但它似乎对我不起作用。 servlet很好地发布,在监视窗口中,我可以在那里看到我的json对象,用于servlet _parameters
的{{1}}成员变量,但我似乎无法获取参数。
这是我的代码。
的Javascript :
HttpRequest
Servlet (我也试过“作者”和“标题”但没有回来):
// build data from input fields
var jsondata = '{"author":"TEST", "title":"XYZ"}';
$.ajax({
type : 'POST',
dataType : 'json',
data: jsondata,
url : '/submitquote',
timeout : 5000,
success : function(data, textStatus) {
// whatever
},
error : function(xhr, textStatus, errorThrown) {
// whatever
}
});
这就是我在请求对象上使用变量监视// get data
String postData = req.getParameter("jsondata");
所看到的:
_parameters
我该怎么办?
任何帮助表示赞赏!
答案 0 :(得分:4)
首先,datatype
参数指定出来的数据类型,而不是进入的数据。
其次,data
参数应该给出参数字典,在这种情况下,其中一个参数是已经被字符串化的JSON对象:
var jsondata = {"author":"TEST", "title":"XYZ"};
$.ajax({
type : 'POST',
dataType : 'json',
data: { jsondata : JSON.stringify(jsondata)},
url : '/submitquote',
timeout : 5000,
success : function(data, textStatus) {
// whatever
},
error : function(xhr, textStatus, errorThrown) {
// whatever
}
});
现在,req.getParameter("jsondata")
有(仍然是JSON字符串化的)数据,您需要自己解析它。 JSON.org创建了一个非常好的库。
另外两个注意事项:
data: {
之后指定并在getParameter
调用中使用。req.getParameter("author")
和req.getParameter("title")
。