gpt4 book ai didi

node.js - 当 Origin 包含端口号时不允许 CORS

转载 作者:搜寻专家 更新时间:2023-10-31 23:51:16 25 4
gpt4 key购买 nike

我有一个在 Node.js 服务器上运行的应用程序。 CORS 已启用,但我的 POST 请求被拒绝(400,不允许)。

当使用 POSTMAN 发送相同的请求时,我可以通过简单地从 Origin 中删除端口号来让它工作。但它应该可以正常工作,因为来自请求和来源的端口是同一个。

例如这不起作用:

# Request
Request URL: http://the_address:the_port/etc
Request Method: POST

# Headers
Origin: http://the_address:the_port

虽然这工作得很好:

# Headers
Origin: http://the_address

你知道为什么这会崩溃吗? CORS 不应该允许同源请求,即使端口在源中,只要它是同一个端口?

PS:我也在使用 webpack 和 React,但我认为它们没有关系(除非我弄错了)。

最佳答案

您不能手动更改浏览器发送的 Origin header 。浏览器根据它所知道的发送请求的前端 JavaScript 代码的实际来源来设置它发送的 Origin header 。因此,如果您的代码将请求发送到的 URL 的来源与浏览器发送的 Origin header 的值不完全相同,则浏览器会认为这是一个跨域请求。

将前端代码的实际来源从 http://the_address:the_port 更改为 http://the_address 的唯一方法是实际提供来自http://the_address,它的端口号是 80,而不是 http://the_address:the_port,它的端口号不是 80。

关于node.js - 当 Origin 包含端口号时不允许 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46942956/

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