我可能已经在stackoverflow上找到了一个我不知道的答案,对不起,我找不到它。
我的本地主机上运行了一个小型TCP服务器,出于安全考虑,我不支持CORS。
我的问题是,如果CORS用于跨域保护,当http://localhost/
上的网页请求与http://localhost:xxxx
我知道我可以在我的浏览器中关闭安全性,但我试图理解为什么localhost到localhost连接被视为交叉源。
XMLHttpRequest cannot load http://localhost:8000/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access. The response had HTTP status code 500.
答案 0 :(得分:5)
因为localhost
(端口80)是与localhost:8000
不同的主机。
If the two origins are scheme/host/port triples, the two origins are the same if, and only if, they have identical schemes, hosts, and ports.
答案 1 :(得分:2)
同源政策
同源策略允许在浏览器中运行的脚本仅向同一域上的页面发出请求。这意味着请求必须具有 相同的URI方案,主机名和端口号。 This在Mozilla开发者网络上的帖子明确定义了原点的定义和当请求导致失败时。如果您从http://www.example.com/,
发送请求,则以下类型的请求会导致失败。
https://www.example.com/ – Different protocol (or URI scheme).
http://www.example.com:8080/myUrl – Different port (since HTTP requests run on port 80 by default).
http://www.myotherexample.com/ – Different domain.
http://example.com/ – Treated as a different domain as it requires the exact match (Notice there is no www.).
有关更多信息,请参阅this link