2011-08-16 30 views
3

這應該是非常簡單的,但我似乎無法讓它按我的意圖工作。簡單的node.js服務器返回成功或錯誤

我只想讓一個客戶端提交一個帶有電子郵件地址的表單,並且node.js服務器在查詢提交的電子郵件地址後查找數據庫並返回成功或錯誤。作爲第一步,我所要做的就是手動返回成功或錯誤。

在客戶端,我使用JQuery和ajaxForm插件。
在服務器端,我在node.js端使用connect-form。

我可以從node.js端看到console.log消息,但在客戶端看不到「SUCCESS」警報。相反,我在localhost:8000上看到一個空白頁面。我認爲修復會很簡單。

任何幫助將不勝感激!!!!

客戶端HTML/JS:

<div class="gform"> 
    <form id="entryForm" action="http://localhost:8000/" method="post"> 
     <p><input type="radio" name="choice" value="1"> Choice 1</p> 
     <p><input type="radio" name="choice" value="2"> Choice 2</p> 
     <p><input type="radio" name="choice" value="3"> Choice 3</p> 
     <p><input type="radio" name="choice" value="4"> Choice 4</p> 
     <p><input type="radio" name="choice" value="5"> Choice 5</p> 
     <p><input type="text" name="email"> Email Address</p> 
     <p><input type="submit" value="Submit" /></p> 
    </form> 
</div> 
<div id="form_result"> 
</div> 
<script type="text/javascript" src="jquery-1.6.2.min.js"></script> 
<script type="text/javascript" src="jquery.form.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     var options = { 
      dataType: 'json', 
      target: "form_result", 
      success: goodResult, 
      error: badResult, 
      timeout: 1000 
     }; 

     $('#entryForm').ajaxForm(options); 
    } 

    function goodResult() { 
     alert('SUCCESS!'); 
    } 

    function badResult() { 
     alert('ERROR!'); 
    } 
</script> 

Node.js的一面:

var form = require('connect-form'), connect = require('connect'); 
var server = connect.createServer(
    form({ keepExtensions: true }), 
    function(req, res){ 
    // Form was submitted 
    if (req.form) { 
     req.form.complete(function(err, fields){ 
     console.log(fields); 
     res.writeHead(200, { "Content-Type": "application/json" }); 
     res.end(); 
     }); 
    } else { 
     // Regular request, return error. 
    } 
    } 
); 
server.listen(8000); 
console.log('Express app started on port 8000....'); 
+0

我有完全相同的問題。你有沒有找到答案? – Luc

回答

1

這可能是有什麼被退回的NodeJS一個問題。嘗試將您的ajax函數更改爲console.log來自ajax調用的響應,並查看返回的內容。這或檢查響應頭和身體像鉻的網絡監視器

相關問題