我正撞在墙上,挣扎着需要发布到我的Arduino网络服务器并使用其响应更新div的表单。我已经对此进行了大量搜索,尝试了很多我发现的例子,包括jQuery.post()上的那个。
这是我的代码:
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script><script>
screen.lockOrientation("portrait") || screen.mozLockOrientation("portrait") || screen.msLockOrientation("portrait");
$("#form").submit(function(event) {
event.preventDefault();
$.post(url, {serial: $("#serial").val()})
.done(function(data) {
$("#monitor").append($(data));});});
</script>
&#13;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body id="Body">
<h1>>Automação</h1>
<form name="form" id="form" class="form" action="URL" method="POST">
<input type="text" id="serial" name="serial">
<input type="submit" id="enter" value="Enter">
</form>
<div name="monitor" id="monitor" class="monitor"></div>
</body>
</html>
&#13;
我试图&#34;模仿&#34;从Arduino IDE到我的网络服务器的串行监视器可以远程访问。
问题在于我尝试JavaScript不执行发布请求。帖子已被执行,但似乎是来自没有回调函数的表单(忽略服务器答案),因为如果我从表单中删除method = POST或URL(仅在JavaScript中使用它,用于测试目的)这个帖子不会运行。
我从服务器得到的响应是这样的,我想添加到监视器div:
freeMEMORY() = 6498 bytes<br/>
或
Arduino have been running for: 00 days 01 hours 25 minutes 25 seconds.<br/>
答案 0 :(得分:0)
编辑:我认为实际的错误是你有$(data)
,你应该只有data
(你传递给你回调函数的参数.done
我编辑了我的答案以反映这一点。
我不知道JS变量url
在实际操作页面中的位置。
试试这个,并记录action
标记上的form
属性:
$("#form").submit(function(event) {
event.preventDefault();
$.post($(this).attr("action"), { serial: $("#serial").val() })
.done(function(data) {
$("#monitor").append(data);
});
});