【问题标题】:Node.js Ajax error POST 404 (Not Found)Node.js Ajax 错误 POST 404(未找到)
【发布时间】:2018-04-23 12:54:06
【问题描述】:

我正在尝试使用 Ajax 每 5 秒从客户端的控制器获取数据。但结果我得到了一个错误。

这是我的控制器

queue2: function(req, res){
    var mac = req.param('mac');
    var ip = req.headers['x-forwarded-for'] || 
 req.connection.remoteAddress || 
 req.socket.remoteAddress ||
 (req.connection.socket ? req.connection.socket.remoteAddress : null);

     dns.lookup(ip,function onLookup(err, addresses){

         console.log('Address :' + addresses);

     dns.reverse(addresses, function(err, hostname){


     knex.raw("CALL GetQueuePlay('00');")
     .then(function(result){

        var number = JSON.parse(JSON.stringify(result[0][0]));
        console.log(JSON.parse(JSON.stringify(result[0][0])))
        return res.view('kue/kue',{q_play_list:number});


      })


        });
    });

},

这是在客户端

function fetchdata(){
    $.ajax({
        type: 'POST',
        url: '127.0.0.1/queue', //where my route is. 
        data: ({ QNum : 0 , station_num: 0 }),
        success: function(result){
            console.log('Data Appeared!' + result);
        },
        error: function (jqXHR, textStatus,errorThrown) {
            console.log("something is wrong: " + textStatus + errorThrown);
        }

    });

}       

$(document).ready(function(){
    setInterval(fetchdata, 5000);
});

并且控制台上的错误显示"POST http://localhost/queue 404 (Not Found)"

我假设数据没有通过或其他什么,但我不知道这有什么问题。

谢谢!

【问题讨论】:

  • 服务器是否在 80 端口上运行?其他请求是否正常工作?
  • @Saeed.At 是的,其他请求工作正常。

标签: node.js ajax


【解决方案1】:

如果您收到 404 not found 错误,请尝试将 URL 更改为 /queue,例如:

function fetchdata(){
    $.ajax({
        type: 'POST',
        url: '/queue', //where my route is. 
        data: ({ QNum : 0 , station_num: 0 }),
        success: function(result){
            console.log('Data Appeared!' + result);
        },
        error: function (jqXHR, textStatus,errorThrown) {
            console.log("something is wrong: " + textStatus + errorThrown);
        }

    });

}       

$(document).ready(function(){
    setInterval(fetchdata, 5000);
});

否则,该 URL 是一个将 127.0.0.1 视为目录的相对 URL。

【讨论】:

    【解决方案2】:

    404 表示您没有queue 的发布路线。

    我认为您没有queue 的路由,或者它有问题。

    router.post('/queue', function(req, res) {
        // do something
    });
    

    【讨论】:

    • 我正在使用sails.js,这也需要post router吗?
    • 我没有使用sail.js。但是 404 表示该路由存在问题。阅读文档并再次检查。@Max13
    猜你喜欢
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 2018-06-15
    • 2015-11-21
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 2017-01-27
    相关资源
    最近更新 更多