gpt4 book ai didi

javascript - Safari 阻止对 Express API 的 CORS 请求

转载 作者:行者123 更新时间:2023-11-30 06:52:27 26 4
gpt4 key购买 nike

我有一个简单的节点/快速服务器,用作我的 AngularJS 应用程序的 API。它运行在 localhost:8080

let express = require('express');
...

let cors = require('cors');
...

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

let port = Number(process.env.PORT || 8080);
...

app.use('/api', require('./routes'));
app.use('*', (req, res) => res.sendStatus(httpStatus[404]).end());

app.listen(port, () => logger.info("✔ Listening on port " + port));

非常基本的东西。 cors() 应该允许使用 GET,HEAD,PUT,PATCH,POST,DELETE 方法的任何来源的请求。

我位于 localhost:3000 的 Angular 应用程序只是向我的服务器发出一个 GET 请求,该请求在 Firefox 和 Chrome 上运行良好,但仅在 Safari 上提供以下信息:

XMLHttpRequest 无法加载 http://localhost:8080/api/drawings/all。 Access-Control-Allow-Origin 不允许来源 http://localhost:3000。

我以为CORS完全由服务器来处理,应该不会有跨浏览器的问题。我读到 Safari 在这方面更严格,但我想确保我的用户不必更改他们的首选项中的某些内容即可使网站正常工作。即使在 Safari 的开发者控制台中,选中“禁用跨源限制”也无济于事。

我的服务器记录请求,并返回 200 状态。

最佳答案

清除 Safari 的缓存解决了这个问题。

关于javascript - Safari 阻止对 Express API 的 CORS 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34557968/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com