2015-01-09 79 views
0

我正在靠牆撞着我的頭,掙扎着一個需要發佈到我的Arduino網絡服務器並使用它的響應來更新div的窗體。我已經對此進行了很多搜索,嘗試了很多例子,包括jQuery.post()Form 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) { 
 
\t event.preventDefault(); 
 
\t $.post(url, {serial: $("#serial").val()}) 
 
\t .done(function(data) { 
 
\t $("#monitor").append($(data));});}); 
 
</script>
<!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>

我想 「模擬」 從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

'的console.log(數據);'使用'$(htmlstring)時 – 2015-01-09 22:49:20

+0

'的htmlstring必須開始和結束HTML標籤。 http://api.jquery.com/jQuery/#jQuery2 – 2015-01-09 22:51:40

+0

不,我在字面意思是'console.log(data);',在它自己的完成回調中。之後閱讀控制檯。 – 2015-01-09 22:54:08

回答

0

編輯:我認爲實際的錯誤是你有$(data)你應該只有data(你傳遞給你的參數回調函數(.done)。我已經編輯了我的答案來反映這個。

我沒有看到JS變量url在哪裏設置了實際的操作頁面。

試試這個,並記錄在form標籤action屬性:

$("#form").submit(function(event) { 
    event.preventDefault(); 
    $.post($(this).attr("action"), { serial: $("#serial").val() }) 
    .done(function(data) { 
     $("#monitor").append(data); 
    }); 
}); 
+0

實際上,url不是一個變量,我只是刪除了IP。它不起作用,POST被執行,但響應顯示在空白頁面中,而不是在div中(與以前相同)。 – Arank 2015-01-09 22:43:38