【问题标题】:Simple node.js server to return success or error返回成功或错误的简单 node.js 服务器
【发布时间】:2011-08-16 18:11:37
【问题描述】:

这应该很简单,但我似乎无法按预期工作。

我只想让客户端提交带有电子邮件地址的表单,node.js 服务器在查询提交的电子邮件地址后查找 db 并返回成功或错误。作为第一步,我要做的就是手动返回成功或错误。

在客户端,我使用的是 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....');

【问题讨论】:

  • 我也有同样的问题。你找到答案了吗?

标签: javascript jquery node.js ajaxform server-response


【解决方案1】:

这可能是 nodejs 返回的问题。尝试将您的 ajax 函数更改为 console.log 来自 ajax 调用的响应并查看返回的内容。或者在 chrome 的网络监视器中检查响应头和正文

【讨论】:

    猜你喜欢
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多