gpt4 book ai didi

javascript - 当我向我的应用程序(javascript 和 nodejs)中的端点发出请求时,在 postman 中指定原始 header 没有任何作用

转载 作者:行者123 更新时间:2023-12-05 09:04:40 24 4
gpt4 key购买 nike

我目前的服务器文件设置如下:

export default createServer = (container) => {
const env = process.env.NODE_ENV
const allowedOrigins = process.env.ALLOWED_ORIGINS || ''
const allowedOriginsArray = allowedOrigins.split(",").map(item => item.trim());

const cors = Cors({
origins: allowedOriginsArray,
allowedHeaders: [
'access-control-allow-origin',
'authorization',
'Pragma',
'contact',
],
exposeHeaders: []
})
}

在这里,我将 origins 设置为来 self 的 env 文件的字符串数组。 (我查看了 cors 文档页面,我认为可能有错字,origins 应该是 origin。无论哪种方式似乎都没有什么区别)。

在我的 postman 请求中,为了测试它,我将来源 header 设置为“http://www.test.com”(这不是我在我的 env 文件中的可信来源之一)。请求在应该失败时成功。我想知道我是否在 postman 中错误地对此进行了测试,或者我的代码中是否有错误。

最佳答案

浏览器强制执行同源策略,以阻止 Mallory 的邪恶网站向您的浏览器发送一些 JavaScript,这些 JavaScript 会向您的网上银行发出 Ajax 请求,并将您的信用记录发送给 Mallory。

CORS 用于放宽同源政策(以便网站可以将您与他们共享的数据的访问权限授予某些受信任的其他网站)。

Postman 不是浏览器。您不使用它来访问网站。它不执行嵌入在这些网站中的 JS。 Mallory 无法告诉它发出 HTTP 请求。只有你能做到。 Postman 不需要执行同源策略,所以它不需要。

您可以使用 Postman 发出带有 Origin header 的 HTTP 请求。然后,您的服务器可以发回适当的 Access-Control-Allow-Origin header 。但是,Postman 除了将其显示在响应 header 列表中外,不会对其执行任何操作。

它肯定不会放松同源策略,因为它一开始就没有强制执行。

关于javascript - 当我向我的应用程序(javascript 和 nodejs)中的端点发出请求时,在 postman 中指定原始 header 没有任何作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68380635/

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