我正在學習 javascript 和 express。我已經制作了可以正常作業的后端應用程式,但我不知道如何從瀏覽器發送請求并從服務器接收回應。這是我嘗試過的簡單示例:
服務器.js:
const express = require("express");
const app = express();
app.listen(3000, () => {
console.log("Listening on port 3000!")
})
app.get("/", (req, res) => {
res.send("Hello");
})
服務器位于glitch.com平臺上。當我從瀏覽器轉到https://expressjs-test.glitch.me/專案時,我看到HelloHTML 檔案中的訊息(它作業正常)。
從我的瀏覽器執行的 Javascript 檔案:
let req = fetch("https://expressjs-test.glitch.me/");
req.then(response => console.log(response));
我嘗試這樣做時遇到的問題是:
Access to fetch at 'https://expressjs-test.glitch.me/' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
我在 stackoverflow 和其他網站上看到了其他問題,但不明白如何解決這個 cors 錯誤。
感謝您的時間。對不起,如果我在這篇文章中犯了一個錯誤。
uj5u.com熱心網友回復:
您需要cors在您的應用程式中使用。由于域不同,因此可以從前端應用程式訪問它。
const cors = require('cors');
這使您可以允許任何前端域
app.use(cors({
origin: '*'
}));
這使您可以允許某些
app.use(cors({
origin: ['https://siteA.com', 'https://siteB.com']
}));
uj5u.com熱心網友回復:
當您在 上托管您的應用程式時glitch.com,您需要允許訪問域,即哪些域可以訪問您的后端。完成此操作后,您將能夠從 API 接收資料。
也可以暫時添加chrome cors插件并啟用。啟用后,重新加載網頁,您將能夠看到回應。
另一種測驗或從 API 獲取資料的方法,您可以使用PostMan,或者如果使用 Visual Studio 代碼,您可以使用市場上的Thunder客戶端。
如果控制臺中有設定,我建議您將 cors 添加到您的 Node.js 服務器。
const express = require("express"),
app = express(),
cors = require("cors"), // importing the `cors` package
const whitelist = ['http://example1.com', 'http://example2.com']
const corsOptions = {
origin: function (origin, callback) {
if (whitelist.indexOf(origin) !== -1) {
callback(null, true)
} else {
callback(new Error('Not allowed by CORS'))
}
}
}
app.use(cors(corsOptions)) // tells Express to use `cors`, and solves the issue
app.listen(3000, () => {
console.log("Listening on port 3000!")
})
app.get("/", (req, res) => {
res.send("Hello");
})
您應該在這里查看cors檔案,還有另一個關于故障 cors 問題的鏈接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/386321.html
標籤:javascript 节点.js 表达 科斯 拿来
上一篇:節點API-無法獲取/url
