你可以使用ajax函数将一个变量从jsp发送到一个servlet并在没有表单的情况下同时打开它吗? [复制]
Posted
技术标签:
【中文标题】你可以使用ajax函数将一个变量从jsp发送到一个servlet并在没有表单的情况下同时打开它吗? [复制]【英文标题】:Can you use an ajax function to send a variable from jsp to a servlet and open it at the same time without a form? [duplicate] 【发布时间】:2021-04-29 23:16:35 【问题描述】:我正在尝试设置一个按钮将调用的函数并激活 ajax 命令以将名为 [finalstring] 的变量发送到 servlet,同时调用 servlet 打开。
这是代码。
function send()
var finalstring = newstrings.join(',');
finalstring = finalstring.substring(0,finalstring.length -3);
$.ajax(
type: "post",
url: "arraycomp",
data: "Value": finalstring,
success: function (data)
if (data == "0")
alert("Input Submitted!");
else
alert("ERROR: Failed to submit Input.")
);
但是,这里的问题是 1. 根本没有读取数据值,因为我输入的 if 和 else 语句一直在读取错误,发送了提交输入失败的警报。 2. 同时,由于页面仍在同一个jsp中,调用似乎不起作用。
所以我想知道这个函数是否有问题,因为其余代码完全没问题。谁知道更多关于ajax的可以请你指出我在这里做错了什么?
【问题讨论】:
同时显示您的后端代码。另外,问题在成功函数内部,同时调用 servlet 打开是什么意思。? 我正在尝试让 ajax 将变量作为“值”发送到我的 servlet,同时也移动到 servlet,就像表单的操作如何移动到 ' 上的指定文件一样提交'。 jsp 代码很多,因为我为 if 和嵌套 if 语句制作了许多函数。我会尽量限制在需要的范围内。 【参考方案1】:这是我用来进行输入的“表格”。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TextArea Input</title>
</head>
<body>
<form>
Input Area: Format for input = FirstName,LastName,8DigitIDNum (Comma included)
<br/>
<TEXTAREA id = "textarea" COLS = "40" ROWS = "10" onkeypress = "arraybuild(event, this)"></TEXTAREA>
<br/>
<br/>
<input type="button" id="submit" value="Submit" disabled = "true" onclick="send(this)"/>
<br/> <br/>
<input type="button" value="Reset" onclick = "unlock(this)"/>
<br/> <br/>
</form>
<script type="text/javascript">
这是主要代码,它是一个文本区域的函数,每次我按下回车键时都会输入一个数组。 finalstring 应该是压缩成字符串的数组,以便我发送到 servlet。
var input;
var uneditstring;
var editremovespace;
var newstrings;
function arraybuild(e)
var input = (e.keyCode ? e.keyCode : e.which);
if (input == 13)//Note: key number 13 is Enter Key
uneditstring = document.getElementById("textarea").value;
editremovespace = uneditstring.split(" ").join("");
newstrings = editremovespace.replace(/\n/g, ",").split(",");
console.log(newstrings)
if(newstrings.includes('-1'))
newstrings.pop();
console.log(newstrings)
if(checkValues(newstrings))
if(checkID(newstrings))
if(checkNames(newstrings))
document.getElementById("textarea").readOnly = true;
document.getElementById("submit").disabled = false;
alert('You entered -1, you can now submit the inputted values.')
alert('If you want to reopen the text area, click Reset.')
else
alert('ERROR: Names are not valid.');
alert('ERROR: Due to containing a number or being over 255 characters.');
else
alert('ERROR: One of the IDs is not Valid.');
alert('ERROR: Due to starting with a double zero, \nhaving a letter in them, \nor being longer than 8 digits.');
else
alert('ERROR: Note enough values inputted. At least 3 Values are required.');
else
console.log('Not yet pressed -1');
这些代码都没有给我任何错误。 PS:如果还是太长,请见谅。
【讨论】:
以上是关于你可以使用ajax函数将一个变量从jsp发送到一个servlet并在没有表单的情况下同时打开它吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
从 servlet 获取数据到 JSP 并通过 ajax 再次将该数据发送到另一个 servlet
无法使用 Ajax 将多部分文件从 JSP 传递到 Spring MVC 中的控制器