Javascript 反应获取帖子,页面刷新并成为GET请求
我的REACT网站中有一个登录页面,通过fetch发送POST请求,但每次由于某种原因提交请求时,它都会刷新页面并将其作为GET请求发送,我的登录页面上有以下方法:Javascript 反应获取帖子,页面刷新并成为GET请求,javascript,node.js,reactjs,post,get,Javascript,Node.js,Reactjs,Post,Get,我的REACT网站中有一个登录页面,通过fetch发送POST请求,但每次由于某种原因提交请求时,它都会刷新页面并将其作为GET请求发送,我的登录页面上有以下方法: onSubmitSignIn = () => { fetch("http://192.168.56.1:8560/signin", { type: 'POST', headers: {'Accept': 'application/js
onSubmitSignIn = () => {
fetch("http://192.168.56.1:8560/signin", {
type: 'POST',
headers: {'Accept': 'application/json',
'Content-Type': 'application/json'},
body: JSON.stringify({
email: this.state.signinEmail,
password: this.state.signinPassword,
}),
})
.then(response => response.json())
.then(data => {
if (data ==='success'){
}
})
}
服务器端签名页面如下所示:
app.post('/signin', (req, res) => {
if (req.body.email === database.users[0].email && req.body.password === database.users[0].password){
res.json("success");
}else{
res.status(404).json("Error loggingin");
}
})
邮递员工作正常,服务器似乎正常
我已经尝试将HTTP更改为https,即使我的服务器是HTTP以防万一。
尝试重新启动两台服务器,尝试更改以获取axios,但似乎没有任何效果
有什么想法吗?onSubmitSignIn=(事件)=>{
onSubmitSignIn = (event) => {
event.preventDefault() // <= You Need this
fetch("http://192.168.56.1:8560/signin", {
type: 'POST',
headers: {'Accept': 'application/json',
'Content-Type': 'application/json'},
body: JSON.stringify({
email: this.state.signinEmail,
password: this.state.signinPassword,
}),
})
.then(response => response.json())
.then(data => {
if (data ==='success'){
}
})
}
event.preventDefault()//response.json())
。然后(数据=>{
如果(数据=='success'){
}
})
}
onSubmitSignIn=(事件)=>{
event.preventDefault()//response.json())
。然后(数据=>{
如果(数据=='success'){
}
})
}
在开发中创建React应用程序代理API请求--src/setupProxy.js
人们通常从与其后端实现相同的主机和端口为前端React应用程序提供服务
不需要这样的设置。但是,如果您确实有这样的设置,那么编写诸如fetch('/api/todos')
之类的请求是很方便的,而无需担心在开发期间将它们重定向到另一个主机或端口
要告诉开发服务器将任何未知请求代理到开发中的API服务器,请在包.json
中添加代理
字段,例如:
"proxy": "http://localhost:8560",
手动配置代理
首先,使用npm或Thread安装http代理中间件
:
$ npm install http-proxy-middleware --save
$ # or
$ yarn add http-proxy-middleware
接下来,创建src/setupProxy.js
并在其中放置以下内容:
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
app.use(
'/api',
createProxyMiddleware({
target: 'http://localhost:8560',
changeOrigin: true,
})
);
};
应用程序编程接口:
在开发中创建React应用程序代理API请求--
src/setupProxy.js
人们通常从与其后端实现相同的主机和端口为前端React应用程序提供服务
不需要这样的设置。但是,如果您确实有这样的设置,那么编写诸如fetch('/api/todos')
之类的请求是很方便的,而无需担心在开发期间将它们重定向到另一个主机或端口
要告诉开发服务器将任何未知请求代理到开发中的API服务器,请在包.json
中添加代理
字段,例如:
"proxy": "http://localhost:8560",
手动配置代理
首先,使用npm或Thread安装http代理中间件
:
$ npm install http-proxy-middleware --save
$ # or
$ yarn add http-proxy-middleware
接下来,创建src/setupProxy.js
并在其中放置以下内容:
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
app.use(
'/api',
createProxyMiddleware({
target: 'http://localhost:8560',
changeOrigin: true,
})
);
};
应用程序编程接口:
我只是想回答一下,万一有人遇到和我一样的问题,在几个不眠之夜翻阅我的代码后,我想我登录页面的模板是从一个“tachyon”模板中取出来的,我在版本控制中遗漏了一个“表单”,实际上应该变成一个“div”,在讨论了这个问题之后,我突然想到,基本上,如果您碰巧从“表单”内部获取信息,并且该表单没有方法post,它将自动将API请求转换为GET请求,并用信息填充URL
这样就分类了。现在让我们来解决其余的bug。我只是想回答一下,万一有人遇到与我相同的问题,经过几个不眠之夜的代码挖掘,我想我登录页面的模板是从一个“tachyon”模板中取出来的,我在版本控制中遗漏了一个“表单”这实际上应该被转换成一个“div”,在讨论完这个问题后,我突然想到,基本上,如果你碰巧从一个“表单”中获取信息,而这个表单没有方法post,它会自动将API请求转换为GET请求,并用信息填充URL
这样就分类了。现在让我们来解决其余的bug。
键入:“POST”、
这不应该是方法:“POST”、
?键入:“POST”、
这不应该是方法:“POST”、
?刚刚更改了它,但不幸的是它仍然是同一个问题。这可能与浏览器的配置有关吗?或者是开发服务器?我还没有更改react development server上的任何配置,但我仍然想知道这可能不是因为代码问题,而是因为部署问题。好的,我的朋友。我会告诉你另一种方式刚刚改变了它,但不幸的是它仍然是同一个问题。这可能与浏览器的配置有关吗?或者是开发服务器?我还没有更改react development server上的任何配置,但我仍然想知道这可能不是因为代码问题,而是因为部署问题。好的,我的朋友。我会告诉你另一种方法