我有一个RESTIFY api并在Raspberry pi上运行。它的IP在192.168.1.12
处是静态的。我还想从create-react-app
运行可访问的网络服务器,该服务器从api获取信息。
create-react-app
:
axios.get(`http://localhost:8080/ping`).then(
(response) => {
console.log(`response received!`);
}
).catch(
(error) => {
console.error(`error received from axios`);
}
);
[RESTify
(在设置服务器时):
const corsMiddleware = require('restify-cors-middleware');
const cors = corsMiddleware(
{
origins: [
'*'
]
}
);
server.pre(cors.preflight);
server.use(cors.actual);
server.get(`/ping`, (req, res) => res.send(200));
但是我仍然无法获得create-react-app
来访问服务器。我在这里错了吗?
如果使用的是Expressjs,则可以使用。
npm install cors
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
或者您可以使用中间件
//CORS middleware
var corsMiddleware = function(req, res, next) {
res.header('Access-Control-Allow-Origin', 'localhost'); //replace localhost with actual host
res.header('Access-Control-Allow-Methods', 'OPTIONS, GET, PUT, PATCH, POST, DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type, X-Requested-With, Authorization');
next();
}
app.use(corsMiddleware);