为什么从未调用成功函数,我该如何解决?

时间:2018-04-21 14:53:29

标签: javascript jquery ajax express post

当我尝试做帖子时,数据被发送并且服务器接收它但是从不调用成功函数。该连接显示在chrome的网络检查器选项卡中已停止,并且警告:连接尚未完成。

脚本:

var modif = {
    CRN: $("#DIAS").parent().parent().parent().children()[0].children[0].innerText,
    DIAS: $("#DIAS").val(),
    start_hr: $("#STRHR").val(),
    end_hr: $("#ENDHR").val(),
    title: $("#TITLE").val()
}
$.ajax({
    url: '/cmanager/edit',   
    dataType: 'text',
    type: 'POST',
    data: modif,
    success: function (order) {
        alert("functiono!");
    },
    error:   function(jqXHR, textStatus, errorThrown) {
    alert("Error, status = " + textStatus + ", " +
          "error thrown: " + errorThrown
    );

服务器

app.post("/cmanager/edit",function (req, res) {
var CRN = req.body.CRN;
var DIAS = req.body.DIAS;
var start_hr = req.body.start_hr;
var end_hr = req.body.end_hr;
var title = req.body.title;
console.log(CRN);
console.log(DIAS);
console.log(start_hr);
console.log(end_hr);
console.log(title);
var usrq = "update section natural join class set DIAS = '"+DIAS+"', start_hr = '"+start_hr+"', end_hr = '"+end_hr+"', title = '"+title+"' where CRN = '"+CRN+"';";
  connection.query(usrq, function (error, results, fields) {
    if (error) 
    console.log(error.code);
    else
    try {
        console.log("hello");
    } catch (error) {
        console.log("bad ifo by client");
    }
  });
})

1 个答案:

答案 0 :(得分:0)

您的服务器中没有任何地方实际将任何数据发送回客户端。

在您的服务器中,您至少需要致电res.end()。在我看来,你真正想要的是res.sendStatus(204);

另请注意,您对SQL注入攻击全面开放,如果您还没有被攻击,则会被黑客攻击。始终使用参数化查询来完全避免此问题。