2011-08-16 4 views
3

이것은 매우 간단해야하지만 의도 한대로 작동하지는 않습니다.단순한 node.js 서버가 성공 또는 오류를 반환합니다.

클라이언트가 전자 메일 주소로 양식을 제출하고 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....'); 
+0

나는 정확히 같은 문제가 있습니다. 어떤 대답을 찾았습니까? – Luc

답변

1

이 nodejs에 의해 반환되는 있는지와 문제가 될 수 있습니다. ajax 함수를 console.log로 변경하여 ajax 호출의 응답을 리턴하고 리턴되는 내용을 확인하십시오. 그것 또는 크롬의 네트워크 모니터와 같은 무언가에 응답 헤더와 신체를 확인하십시오.

관련 문제