我有一个问题,我尝试使用Express, Axios and React
删除方法,但是他们提出的错误是无效...
我的代码AXIOS.JS with REACT
:
remove = (name, id) => {
axios.delete('http://127.0.0.1:9000/people/' + id).
then((response => id.splice(name, 1)))
}

我的EXPRESS.JS
:
app.delete('/people', function (req, res) {
res.send('DELETE request to homepage');
});

错误:
选项http://127.0.0.1:9000/people/0 404(未找到)
无法加载http://127.0.0.1:9000/people/0:对预检请求的响应未通过访问控制检查:否' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://localhost:3000'因此不允许访问。响应的HTTP状态代码为404.
未捕获(承诺)错误:网络错误 at createError(createError.js:16) 在XMLHttpRequest.handleError(xhr.js:87)
有人帮我吗?
答案 0 :(得分:0)
您似乎正在尝试将ID
作为请求参数发送给您支持的。
你必须
更改axios.delete('http://127.0.0.1:9000/people/' + id).
到axios.delete('http://127.0.0.1:9000/people/:' id)
。
并且
app.delete('/people', function (req, res) {
到
app.delete('/people/id', function (req, res) {
您还需要在服务器端启用CORS
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
答案 1 :(得分:0)
看起来你必须在Express中启用CORS,看一下这个答案:How to allow CORS?。