[英]How to pass parameters to an action by a post or ajax call in jQuery?
我的意图是将几个参数传递给struts2中的一个动作,但是我希望这些参数必须隐藏,因此不建议使用GET调用。 我以为jQuery中的post或ajax调用可能是个好主意,但是参数为null,并且重定向到jsp页面不起作用。 这是操作和javascript代码:
MyAction.java
public class MyAction extends ActionSupport{
private Long pkId;
private String type;
public String execute() {
String pkId = getPkId();
String type = getType();
return Action.SUCCESS;
}
}
file.js
function myFunction(){
var pkId = "pkId1";
var url = "./myAction.action";
var type = "type1";
$.ajax(url, {pkId : pkId, type : type});
}
更新的代码:
function myFunction(){
var pkId = "pkId1";
var url = "./myAction.action";
var type = "type1";
$.post(url, {pkId : pkId, type : type}, function(resp){
// resp is the response from the server after the post request.
});
}
您所做的是正确的。 代替$.ajax()
,使用$.post
缩写:
$.post(url, {pkId : pkId, type : type}, function (resp) {
// resp is the response from the server after the post request.
});
所以file.js
包含:
function myFunction() {
var pkId = "pkId1";
var url = "./myAction.action";
var type = "type1";
$.post(url, {pkId : pkId, type : type}, function (resp) {
// resp is the response from the server after the post request.
});
}
如果您不希望使用异步请求,请将其设置为默认表单。
function myFunction() {
var pkId = "pkId1";
var url = "./myAction.action";
var type = "type1";
var FormD = '<form method="post" action="' + url + '" id="frmFakeSubmit">';
FormD += '<input type="hidden" name="pkId" value="' + pkId + '" />';
FormD += '<input type="hidden" name="type" value="' + type + '" />';
FormD += '</form>';
$("body").append(FormD);
$("#frmFakeSubmit").submit();
}
希望这可以帮助!
$.ajax({
url: "<your url>",
type: "POST",
data: JSON.stringify(<your data>)
}).done(function(response) {
//TODO response from the sever
});
由于$.ajax
的默认请求方法是GET,因此您应该将type参数指定为'POST'来进行post
请求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.