【问题标题】:post response is not getting?帖子回复没有得到?
【发布时间】:2016-05-24 13:29:16
【问题描述】:

html代码=>

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="js/input.js"></script>
</head>
<body>
<form>
<table>
<tr><td>Name</td><td><input type="text" id="name" ></td></tr>
<tr><td> Address</td><td><input type="text" id="address"></td></tr>
<tr><td>Sex</td><td><input type="radio" name="sex" id="sex" value="male">Male
<input type="radio"  id= "sex"name="sex" value="Female">Female</td></tr>
<tr><td>DOB</td><td><input type="date"  id="dob"></td></tr>
<tr><td>Course</td>
<td><select id="course">
<option value="0">select..</option>
<option value="B.Tech">B.TECH</option>
<option value="MCA">MCA</option>
<option value="MBA">MBA</option>
<option value="BCA">BCA</option>
</select></td>
</tr>
<tr><td>EmailId</td><td><input type="text" id="emailid"></td></tr>
<tr><td>MobileNo</td><td><input type="text" id="mobileno"></td></tr>
 <tr><td colspan="2"> <button id="submit">Submit</button>
 </table>
<form>
</body>
</html>

input.js => 当提交按钮点击的值被传递给插入。

$(document).ready(function()
{
    $('#submit').click(function()
    {       
        var name=$("#name").val();
        var address=$("#address").val();
        var gender=$("#sex:checked").val();
        var dob= $("#dob").val();
        var course=$("#course").val();
        var email= $("#emailid").val();
        var mobileno=$("#mobileno").val();
        var data={'name':name,'address':address,'gender':gender,'dob':dob,'course':course,'email':email,'mobileno':mobileno};
        $.post('http://localhost:3111/insert',data,function(result){
           if(result=='success')
           {
             alert("insertion successful");
           }
        });
    });
});

routes.js => 值在这里成功传递

var express = require('express');
var router = express.Router();
var db=require('./dbentry.js');

router.post('/insert',function(req,res)
{   
    var name=req.body.name;
    var address=req.body.address;
    var gender=req.body.gender;
    var dob=req.body.dob;
    var course=req.body.course;
    var email=req.body.email;
    var mobileno=req.body.mobileno;
    var insertValues={'name':name,'address':address,'gender':gender,'dob':dob,'course':course,'email':email,'mobileno':mobileno};
    db.insert(insertValues,function(result){
       if(result=="success")
       { 
          res.end("success");  
       }
       else
          res.end("fail");
    });         
});
module.exports = router;

dbentry.js => 插入值的函数

var client=require('./dbconnection.js');
function insert(insertValues,callback)
{
    client.connection.query('insert into detail set ?',insertValues,function(err,rows)
    {    
        if(!err)
           callback("success");
        else
           callback("fail");
        }); 
    }
}
module.exports.insert=insert;

值已成功插入数据库,并且成功消息从dbentry.js 传递到route.js。 但问题是来自route.js 成功消息没有传递给input.js。我检查了很长时间的代码,但我无法找到错误。

【问题讨论】:

  • console.log(result) in input.js ?
  • 我已经尝试过了,但它没有进入函数内部。甚至我在函数内部打印了一个虚拟文本,也没有打印出来
  • 使用res.send() 而不是res.end()
  • 我也试过了,
  • 我试过你的代码,(模拟数据库部分)和它在这里工作。

标签: javascript jquery node.js express


【解决方案1】:

只需检查您的 HTML 文件,如果您在没有 onsubmit 的情况下添加了“form”标签 并检查,提交是由$('#btnId').click(function(){});

如果是这样,则删除未使用的“表单”标签,并检查您的代码是否正常工作。

我认为它的发生是因为表单的默认行为。这里的表单 onSubmit 可能是空的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    • 2013-09-20
    • 2017-02-17
    • 2014-07-14
    相关资源
    最近更新 更多