【发布时间】:2018-08-06 19:49:36
【问题描述】:
目前表单数据通过 URL 传递,如下所示。
document.getElementById('newChildForm').action = "./populateImageProcessing?personId="+ temp+ "&category="+ strUser+ "&fromDate="+ frmDate+ "&toDate=" + toDate+"&advFromDayID="+advFromDayID+"&advFromMonthID="+advFromMonthID+"&advFromYearID="+advFromYearID+"&advToDayID="+advToDayID+"&advToMonthID="+advToMonthID+"&advToYearID="+advToYearID;
document.getElementById('newChildForm').submit();
我想单独传递表单数据,而不是通过 URL。
我用 ajax/jQuery 尝试了下面的方法
$.ajax({
cache: false,
url : "./populateImageProcessing",
type : "POST",
data : "personId=" + temp + "&category="
+ strUser
+ "&fromDate="+ frmDate+ "&toDate=" + toDate+ "&advFromDayID="+advFromDayID+"&advFromMonthID="+advFromMonthID+"&advFromYearID="+advFromYearID+"&advToDayID="+advToDayID
+"&advToMonthID="+advToMonthID+"&advToYearID="+advToYearID,
success: function(data){
$("#newChildForm").html(data);
}
});
jQuery 在 SIT 环境中工作,但由于 CSP,我在 UAT 环境中遇到了一些麻烦。
有没有什么办法可以使用纯javascriptdocument.getElementById('newChildForm').action="./populateImageProcessing",并单独传递参数,而不是在URL中。
请帮忙。谢谢。
【问题讨论】:
-
CSP 与此有什么关系?如果您不想要 URL 中的参数,那么 POST 确实是唯一可行的选择;但我们甚至不知道您的服务器端组件是否想要接受 POST 数据。像在第一个代码 sn-p 中那样以如此丑陋的方式创建该 URL 的替代方法是用值填充隐藏的表单字段,然后提交表单。
标签: javascript jquery ajax dom