如何将var从javascript传递给servlet。是的我知道你可以在servlet端使用getParameter,但我首先需要做一些javascript的东西然后从那里需要将新的变量传递给servlet。
请参阅我的Javascript示例:
function openBrWindowAndSubmit() {
var textBodyValue = encodeURIComponent(document.getElementById("textBody").value);
alert(textBodyValue); //returns empty
document.forms[0].submit();
var textBodyValue = encodeURIComponent(document.getElementById("textBody").value);
alert(textBodyValue); //works
}
正如您在上面的示例中所看到的那样,第一个"警报" block返回空,但第二个返回正确的编码值,因为已经调用了document.forms [0] .submit。那么我有没有办法得到第二个变量" textBodyValue" (在document.forms [0] .submit之外)到servlet?我在servlet端调用它:
String test = req.getParameter("textBody");
这里是一个表单标签内的JSP,它在点击时调用该函数:
<textarea id="textBody" name="textBody"></textarea>
<input type="button" onClick="openBrWindowAndSubmit();" value="Click Here to Preview Email">
这个问题有解决办法吗?
我一直在尝试将javascript功能更改为:
function openBrWindowAndSubmit() { //v2.0
document.forms[0].target = "_blank";
document.getElementById("action").value = "view_template";
var textBodyValue = encodeURIComponent(document.getElementById("textBody").value);
alert(textBodyValue);
document.forms[0].submit();
var textBodyValue = encodeURIComponent(document.getElementById("textBody").value);
alert(textBodyValue);
$.ajax({
url: 'http://localhost:8080/restricted/comm/Email',
data: textBodyValue,
// processData: false,
// contentType: false,
type: 'POST',
success: function(data){
alert(data);
}
});
}
这可以吗?我到达$ ajax标签时遇到未定义的错误?
答案 0 :(得分:0)
作为一个想法。不知道它是否正确;)但您可以在jQuery api页面上查看它。
$('#idOfTheForm').on('submit', function(e){
e.preventDefault();
data = { key : val , key2 : val2 };
$.ajax({
type: "post",
data: data,
url : "",
success : function(response){
console.log("return code was 200");
},
error : function(jqXHR, textStatus, errorThrown){
console.log(errorThrown);
}
});
return false;
}