我的 Expressjs API 和 React 客戶端之間的連接有一個小問題。
Express API -> http://localhost:3001 React -> http://exampleip:3000(都在同一個windows服務器上)
我添加了包 CORS 并添加了以下代碼
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
... other code
app.use('/testdata', async function (req, res) {
const data = await receiveData();
res.send(data);
});
如果我在代碼所在的服務器上使用 react 應用程式獲取資料,我會毫無問題地從 express api 接收資料。
如果我從本地 PC 上的 react 應用程式或同一網路(但不在同一 Windows 服務器上)上的 citrix 終端會話(windows)上使用 ip 獲取資料,則會收到以下錯誤。
控制臺錯誤截圖
網路錯誤截圖
uj5u.com熱心網友回復:
我更喜歡使用這個代碼它會幫助你
// init application
const app = express();
// fix access to back-end
app.use((req, res, next) => {
// Website you wish to allow to connect
res.setHeader("Access-Control-Allow-Origin", process.env.FRONTEND_APP_HOST);
// Request methods you wish to allow
res.setHeader(
"Access-Control-Allow-Methods",
"GET, POST, OPTIONS, PUT, PATCH, DELETE"
);
// Request headers you wish to allow
res.setHeader(
"Access-Control-Allow-Headers",
"X-Requested-With,content-type"
);
// Set to true if you need the website to include cookies in the requests sent
// to the API (e.g. in case you use sessions)
res.setHeader("Access-Control-Allow-Credentials", true);
// Pass to next layer of middleware
next();
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/350168.html
標籤:javascript 节点.js 反应 表达 科尔斯
