为什么post请求工作在本地而不是远程?搜索到的Url不同

Why does post request work locally and not remotely? url searched for is different

本文关键字:搜索 不同 Url 工作 请求 post 为什么      更新时间:2023-09-26

我有一个页面的按钮在一个特定的url。这里它们是本地和远程

local: http://localhost:4000/individual/comp6/57d614b711d268030080eda9/

remote: https://linknon.herokuapp.com/individual/comp6/57d614b711d268030080eda9/ (THIS IS NOT MY REAL LINK)

当我点击按钮并在我的代码中有app.post("/individual/"+ comp + "/usefulness", postHandler)时,localhost工作(db得到更新)

但是当我上网点击按钮时,我得到Failed to load resource: the server responded with a status of 404 (Not Found),它不能得到https://linknon.herokuapp.com/individual/comp6/57d614b711d268030080eda9/usefulness,我发现这很奇怪。为什么它在本地工作而不是远程?

my app.post("/individual/"+ comp + "/usefulness", postHandler)不包括公司名称后面的id(公司名称是comp变量)。我假设由于某种原因,我必须在remote中添加Id。我尝试了一些东西,比如使用正则表达式(从未这样做过)app.post("/individual/.+/usefulness", postHandler)在本地不工作,想知道它是否会在远程工作。

我也做post请求在相同的模块,像这样

app.post("/usefulness", postHandler);
app.post("/reviewfor/usefulness", postHandler);

这些似乎有效

我觉得他们都有一个共同的usefulness结尾,所以也许一个正则表达式会工作。

这是你的问题。在定义路由时不要这样使用变量:

app.post("/individual/"+ comp + "/usefulness", postHandler)

它将应用程序加载时变量(在本例中为comp)与应该是每个请求的变量混合在一起。Express用路由参数处理每个请求变量。所以你需要这样写:

app.post("/individual/:comp/usefulness", postHandler)

然后在postHandler的正文中,您可以访问req.params.comp,这将是来自此请求的URL的特定值,如comp1, comp2, comp3等。