目前,表单数据是通过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中传递参数。

请帮忙。谢谢。

最佳答案

尝试使用以下代码:

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);

10-08 03:10