react-router将POST请求添加到URL

时间:2016-09-08 21:28:40

标签: javascript express reactjs react-router flux

谢谢!长期极端的googler,首先是SO问题。我一直在为解决这个问题而大肆渲染,并且尚未找到解决方案。

我正在尝试通过fetch POST请求将表单数据从react发送到express api。我通过GET成功地使用了通过商店和来源fetch api数据的助焊剂操作,并且我已成功地在快速方面存储了POST个请求;但每当我提交表单并发送POST请求时,看起来似乎react-router正在将查询添加到hashHistory

screencap of request handled by react-router

这里是前端反应和后端快递的GITHUB GIST。这是应用程序结构的一棵树:

├── 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>出反应路由器的方法,但似乎无法到达快速服务器。不确定它是否与我如何设置状态有关,或者它是否与alt磁通存储器共享状态,或者是否与“#”相关联。国家甚至如何工作或者我应该使用道具,但实际上我只是在试图让POST请求得到反应并进入快递的文档中摸索。任何提示都会非常感激!

1 个答案:

答案 0 :(得分:1)

看起来你需要阻止触发默认事件(如果没有另外指定,表单提交默认为GET请求):

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