Javascript 如何在jQuery中通过post或ajax调用将参数传递给操作?
我的目的是在struts2中向一个操作传递几个参数,但我希望这些参数必须隐藏,因此不建议使用GET调用。我认为在jQuery中进行post或ajax调用是一个好主意,但是参数为null,重定向到jsp页面不起作用。以下是操作和javascript代码: MyAction.javaJavascript 如何在jQuery中通过post或ajax调用将参数传递给操作?,javascript,jquery,struts2,Javascript,Jquery,Struts2,我的目的是在struts2中向一个操作传递几个参数,但我希望这些参数必须隐藏,因此不建议使用GET调用。我认为在jQuery中进行post或ajax调用是一个好主意,但是参数为null,重定向到jsp页面不起作用。以下是操作和javascript代码: MyAction.java public class MyAction extends ActionSupport{ private Long pkId; private String type; public
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.
});
因此文件.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();
}
函数myFunction(){
var pkId=“pkId1”;
var url=“./myAction.action”;
var type=“type1”;
var FormD='';
FormD+='';
FormD+='';
FormD+='';
$(“正文”)。附加(表格D);
$(“#frmFakeSubmit”).submit();
}
希望这有帮助 $.ajax({
$.ajax({
url: "<your url>",
type: "POST",
data: JSON.stringify(<your data>)
}).done(function(response) {
//TODO response from the sever
});
url:“”,
类型:“POST”,
数据:JSON.stringify()
}).完成(功能(响应){
//来自服务器的TODO响应
});
由于
$.ajax
的默认请求方法是GET,因此您应该将type参数指定为'POST'来执行POST
请求。您没有指定需要POST
请求。$.ajax()
调用的默认值是GET
。指定文档中解释的方法
。可能重复感谢您的回答。我按照你的建议编辑了我的代码;参数传递正确,但在我的操作成功后重定向到jsp页面不起作用。我不知道我必须在函数方法中加入什么。你想重定向到哪里?是否要重定向到“/myAction.action”
?是的,我想在填充了两个参数的情况下重定向到我的操作。@chris,那么您不应该使用AJAX。AJAX只适用于异步。让我更新我的答案。@chris现在看看!