react-router 将 POST 请求添加到 URL

react-router prepending POST request to URL

谢谢!长期极端的 g​​oogler,第一个 SO 问题。一直在绞尽脑汁想办法解决这个问题,一直没有找到解决办法。

我正在尝试通过 fetch POST 请求将表单数据从 React 发送到快递 api。我已经通过 fetch 成功地将通量操作与存储和源一起使用到 GET api 数据,并且我已经成功地在快递端存储了 POST 请求;但是每当我提交表单并发送 POST 请求时,react-router 似乎都会将查询添加到 hashHistory.

screencap of request handled by react-router

这里有一个GITHUB GIST的前端react和后端express。这是应用程序结构树:

├── app
│   ├── controllers
│   │   └── projects.js
│   ├── helpers
│   │   ├── hash.js
│   │   └── passportHelper.js
│   ├── models
│   │   └── projects.js
│   ├── router.js
│   └── views
│       ├── error.hbs
│       ├── home.hbs
│       ├── layout.hbs
│       ├── login.hbs
│       └── register.hbs
├── app.js
└── src
    ├── app
    │   ├── AppRoot.jsx
    │   ├── actions
    │   │   └── ProjectCreateActions.js
    │   ├── alt.js
    │   ├── components
    │   │   └── CreateProject.jsx
    │   ├── dispatcher
    │   │   └── AppDispatcher.js
    │   ├── sources
    │   │   └── ProjectCreateSource.js
    │   └── stores
    │       └── ProjectCreateStore.js
    └── client
        ├── css
        ├── fonts
        └── js

我尝试了几种不同的解决方案,包括 AJAXXMLHttpRequests,但问题相同。我已经尝试找到 <Link> 脱离 react-router 的方法,但似乎无法到达 express 服务器。不确定它是否与我设置状态的方式有关,或者它是否与 alt 通量存储共享状态, 或者这是否是状态的工作方式或者我是否应该使用道具,但实际上我只是在摸索文档,试图将 POST 请求从反应中提取出来并表达出来。任何提示将不胜感激!

您似乎需要阻止触发默认事件(如果未另行指定,表单提交默认为 GET 请求):

_onSubmit(e) {
   e.preventDefault();
   ProjectCreateStore.listen(this._onChange)
   ProjectCreateActions.postProjects()
}