Javascript 如何传递不在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="+

目前表单数据是通过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环境中遇到了一些问题

是否有任何方法可以使用普通javascript
document.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中传递参数,那将非常有帮助