我正在使用axios并收到400错误请求错误。我正在使用react-redux并尝试向localhost发送帖子请求:3000 /帖子。这是我正在使用的代码。
import axios from 'axios';
import {
GET_ALL_POSTS,
GET_POST,
CREATE_POST,
DELETE_POST,
UPDATE_POST
} from './types';
const ROOT_URL = 'http://localhost:3000';
export function createPost({content, title}, cb) {
return function(dispatch) {
axios.post(`${ROOT_URL}/posts`, {content, title})
.then((response) => {
console.log(response);
dispatch({
type: CREATE_POST,
payload: response
});
})
.then(() => cb())
.catch((error) => {
console.log("Problem submitting New Post", error);
});
}
}
答案 0 :(得分:1)
对于每个发布请求,客户端首先发送一个OPTIONS请求,以检查服务器是否准备好接受连接。您还应该允许服务器接受选项请求。如果不允许,请在节点服务器的情况下使用以下行
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS');
next();
});
答案 1 :(得分:-1)
我也遇到此错误,问题不在于服务器,axios或代理url。
问题是我没有从我的React应用程序发送正确的数据。
例如
我应该发送:
{ email: 'ib2@gmail.com', password: 'asdf' }
我发送的是:
{ name: 'ib2@gmail.com', password: 'asdf' }
这导致api无法理解名称字段,因为我在api中提供了电子邮件作为密钥。
因此,如果您仍然遇到问题,请尝试检查发送的数据是否正确。