我有一个extjs表单,我试图使用Ext.Ajax.request将参数发布到servlet。调用正在运行并且正在调用servlet但由于某种原因,参数的值未被发送。我会发布我的代码,任何人都可以告诉我我做错了什么。提前谢谢。
这是来自ExtJS表单的调用:
buttons: [{
text: 'Search',
handler: function(){
var fName = Ext.getCmp("fName").getValue();
Ext.Ajax.request({
url : 'LookUPCustomer',
method: 'POST',
headers: { 'Content-Type': 'application/json'},
params : fName, // this value isn't being passed to servlet
success: function ( result, request ) {
var resultData1 = JSON.parse(result.responseText);
},
failure: function ( result, request ) {
resultData = JSON.parse(xmlhttp.responseText);
}
});
}];
这是servlet代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
// value of fName is null, not being passed from the form
String fName = request.getParameter("fName");
// does some processing....
// print back to the form
response.setContentType("application/json");
out.println(jsArray);
}
答案 0 :(得分:4)
params参数应该是具有键值对的JSON对象。这是一个例子:
params: {
firstName: 'Jeff',
lastName: 'Tester'
}
或插入变量
params: { fName: fName }
答案 1 :(得分:0)
正如你所说,你正在使用extjs 4.0.7。它使用extraparams。 所以你需要像下面那样编码
在发送之前,只需验证fName是否包含所需的值。
Ext.Ajax.request({
url : <URL>,
method: 'POST',
extraParams :{ fName : fName },
success: function ( result, request ) {
var resultData1 = JSON.parse(result.responseText);
},
failure: function ( result, request ) {
resultData = JSON.parse(xmlhttp.responseText);
}
});
由于