1

我正在学习服务器和API,我不太了解如何通过请求接收和发送数据。因此,我使用MongooseExpress.js获得了带有Node.js的服务器:

server.get('/api/items', async (req, res)=>{
    let results = await TvModel.find({model: 4013});
    res.json(results);
});

因此,如果我通过邮递员发送获取请求,我会得到:

[
    {
        "_id": "60f62a33a1dbf8031088cd3b",
        "name": "Sony",
        "model": "4013",
        "size": 8,
        "idSerial": 1,
        "__v": 0
    }
]

因此,尝试使用 fetch api 通过 JavaScript 获取数据:

fetch(API_URL, {mode: 'no-cors'})
    .then((resolve) => {resolve.json()})

执行此代码时,我在控制台上收到错误消息:

Uncaught (in promise) SyntaxError: Unexpected end of input

我看不到的 SyntaxError 是什么?

4

1 回答 1

0

我通过执行以下操作自己解决了这个问题:

感谢@Bravo的回答,我能够了解我的错误是什么:

“您是否因为CORS错误而添加了该标头,也许认为这会绕过CORS?

由于我使用express.js的是我的服务器,我必须为我的服务器安装一个中间件,一个名为"cors"的 npm 模块。

所以我唯一需要添加的是这行代码:

const cors = require('cors');

app = express();
app.use(cors());

无论如何,您可以在 express.js 官方网站上的 cors官方文档中阅读更多内容

于 2021-07-21T00:33:36.310 回答