编辑:这只适用于 HapiJS 16- 版本
我有一个使用 React 的客户端和一个使用 HapiJS 的服务器。
在客户端中,我尝试向服务器发出 POST 请求,但是却收到以下错误:
OPTIONS http://localhost:3001/sentilize/ 404 (未找到) localhost/:1 加载http://localhost:3001/sentilize/失败:跨域请求响应中缺少 'Access-Control-Allow-Origin' 头信息,因此无法访问所请求的资源。原始网址为 'http://localhost:3000',因此被禁止访问。响应的 HTTP 状态码为 404。
我正在端口 3001 上运行服务器。并在 3000 上运行客户端。
任何帮助和指导都将不胜感激。此外,我可以成功地使用 POSTMAN 向服务器发出 POST 请求。只是从 React 中无法正常工作。
这是我的 server.js 文件:
import Hapi from "hapi";
import { routes } from "./routes";
const server = Hapi.server({
host: "localhost",
port: 3001,
routes: { cors: true }
});
// Register Routes
routes.forEach(route => {
server.route(route);
});
// We need to install babel-polyfill
// because async and await are in es7
async function start() {
try {
await server.start();
} catch (err) {
console.log(err);
}
console.log("Hapii server is running");
}
start();
以下是在前端发起调用的代码:
fetchSentiment = () => {
axios
.post("/", {
sentence: this.state.value
})
.then(response => {
this.setState({ sentiment: response.data });
})
.catch(error => {
console.log("Error: ", error);
});
};
我设置了一个 axios 实例,如下所示(axios-sentiment.js)
import axios from "axios";
const instance = axios.create({
baseURL: "http://localhost:3001/sentilize"
});
export default instance;