**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
5小时前关门了。
Improve this question
这段代码是处理API请求的express服务器的代码。app.get('/')
给出了所需的结果(hello world页面)。将app.get
更改为app.post
将引发Cannot GET/
我期待着一个窗口弹出一个Hello World!消息沿着一个输入字段。
import React, { useState } from 'react';
import './App.css';
function App( ) {
const [message, setMessage] = useState('');
const [response, setResponse] = useState('');
const handleSubmit = (e) => {
e.preventDefault();
fetch('http://localhost:3001/', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({message})
})
.then(res => res.json())
.then(data => setResponse(data.message));
}
return (
<div className="App">
<form onSubmit={handleSubmit}>
<label>
Message:
<textarea value={message} onChange={e => setMessage(e.target.value)} />
</label>
<input type="submit" value="Submit" />
</form>
<div>
continue
{response}
</div>
</div>
);
}
2条答案
按热度按时间5ktev3wc1#
由于在运行
POST
请求时错误显示为Cannot GET/
,因此您错误地调用了API。您的服务器端代码是正确的,问题中的其他细节是无关紧要的。从您调用API的地方,将方法从
GET
更改为POST
,它应该按预期工作。zazmityj2#
希望你知道你有前端和后端。前端是你的react应用程序,后端是你的express服务器。你的react应用程序是通过fetch调用你的express服务器(API),我猜?确保fetch请求是一个正确的post请求与正确的头
同时确保CORS处理正确,React应用程序和Express服务器运行在不同的端口。React默认为3001,Express服务器运行在4000等端口