gpt4 book ai didi

cors - 什么原因我可以通过 curl 访问资源,但不能在浏览器中访问?

转载 作者:行者123 更新时间:2023-12-05 01:34:04 25 4
gpt4 key购买 nike

在服务器端,我使用 Rails。我故意没有配置 CORS。因此,正如我所料,在浏览器中我无法向 Rails 服务器发出请求,因为我收到此错误:

enter image description here

但是我可以使用 curl 为终端做:

macabeus@macabeus-acer ~ $ curl http://localhost:3000/people
[{"id":3,"name":"macabeus","age":20,"created_at":"2016-07-31T22:45:05.490Z","updated_at":"2016-07-31T22:45:05.490Z"},{"id":4,"name":"foo","age":10,"created_at":"2016-07-31T22:45:24.415Z","updated_at":"2016-07-31T22:45:24.415Z"}]

什么原因 curl 可以,但浏览器不能?我知道如何解决这个问题。我只是想了解我之前问的问题。

最佳答案

区别应该是标题是否Origin: http://...是否在请求中发送。 curl默认情况下不发送任何额外的 header ,您可以通过运行 curl 来确认。与 -i选项:

$ curl -i http://localhost:3000/people

如果您在 Origin 中发送任意值 header 以及请求,如:
$ curl -i -H 'Origin: http://localhost:63343' http://localhost:3000/people

然后您应该会看到与浏览器中相同的 CORS 错误。

这背后的原因是标题 Origin如果请求是 CORS 请求,即来自不同的站点,并且取决于服务器端的配置 no Origin,则触发header 可能意味着它来自同一来源。

关于cors - 什么原因我可以通过 curl 访问资源,但不能在浏览器中访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38689350/

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