Javascript 如何传递不在URL中的多个参数?
目前表单数据是通过URL传递的,如下所示Javascript 如何传递不在URL中的多个参数?,javascript,jquery,ajax,dom,Javascript,Jquery,Ajax,Dom,目前表单数据是通过URL传递的,如下所示 document.getElementById('newChildForm').action = "./populateImageProcessing?personId="+ temp+ "&category="+ strUser+ "&fromDate="+ frmDate+ "&toDate=" + toDate+"&advFromDayID="+advFromDayID+"&advFromMonthID="+
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中传递
请帮忙。谢谢。你试过这样的东西吗?
Json是传递多个参数的好方法
var obj = { personId: temp, category: strUser, fromDate: frmDate, toDate: toDate, advFromDayID :advFromDayID, advFromMonthID: advFromMonthID, advFromYearID: advFromYearID, advToDayID: advToDayID, advToMonthID: advToMonthID, advToYearID: advToYearID };
$.ajax({
cache: false,
url: "./populateImageProcessing",
type: 'POST',
data: JSON.stringify(obj),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(data){
$("#newChildForm").html(data);
}
});
但我不知道您是否可以在“服务器”端处理它?告诉我。希望有帮助。尝试使用以下代码:
var data = "personId=" + temp + "&category="+ strUser+ "&fromDate="+ frmDate+ "&toDate=" + toDate+ "&advFromDayID="+advFromDayID+"&advFromMonthID="+advFromMonthID+"&advFromYearID="+advFromYearID+"&advToDayID="+advToDayID+"&advToMonthID="+advToMonthID+"&advToYearID="+advToYearID;
var xhttp= new XMLHttpRequest();
xhttp.open("POST", "populateImageProcessing", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById('newChildForm').innerHTML = this.responseText
}
};
xhttp.send(data);
CSP与此有什么关系?如果您不想在URL中使用参数,那么POST确实是唯一可行的选择;但我们甚至不知道您的服务器端组件是否希望接受POST数据。以第一个代码段中的丑陋方式创建URL的替代方法是用值填充隐藏的表单字段,然后提交表单。我想也许我应该提交表单,所以我在您的部分后面添加了以下内容:document.getElementById('newChildForm').submit();它抛出404错误。但是,如果单击“浏览器后退”按钮,则会显示结果。我希望在单击搜索按钮时显示结果。我想,问题出在populateImageProcessing文件中。请检查populateImageProcessing文件中的重定向,您确定没有文件类型(如.php或.asp)的url是正确的吗?谢谢。我希望避免使用jQuery/Ajax。如果我可以提交表单,而不在URL中传递参数,那将非常有帮助