2017-07-24 212 views
1

我有此jQuery中:POST请求节点返回404

$.ajax(
    { 
     type: 'POST', 
     data : mydata, 
     url : '/routerfunction', 
     dataType : 'String', 
     success : function(data) 
     { 
      //do stuff 

     }, 
     error: function(xhr, status, error) 
     { 
      console.log(error); 
      console.log(xhr); 
      console.log(status); 
     }, 


    } 

我有此在index.js(节点)

router.post('/routerfunction/:mydata', function(req,res) 
{ 
    //do stuff 
} 

我有此在app.js(节点)

app.use('/', index); 
app.use('/users', users); 

当我做一个POST请求routerfunction,我得到404错误。我真的试图找到错误,但我不能。错误在哪里?提前致谢。

+1

我不陌生,节点,但是''/ routerfunction /:mydata''看起来好像你期望数据在url上。这不是POST请求的方式。数据位于请求正文中。 – Taplar

+1

在routerfunction之后,你的ajax url会丢失一些东西,你的节点会像/ routerfunction/data一样等待。 – Cylexx

回答

1

这条路线:

router.post('/routerfunction/:mydata', ... 

需要像网址:

/routerfunction/SOMETHING 

,并不会匹配:

/routerfunction 

所以404是正确的在这里。

你将需要:

router.post('/routerfunction', ... 

相匹配的要求。

请记住,你还需要一个body-parser解析体,其中将包括在AJAX请求您随后将能够与req.body访问发送的数据 - 看到这些问题的答案为是一些例子: