localhost:5501与本机ip:5501不同源
1.场景重现
博主在测试时候发现,使用express设置CORS时,浏览器将localhost:5501与本机ip:5501两个url视为不同源。
浏览器报错被CROS协议封锁。
修改后端响应头Access-Control-Allow-origin:http://127.0.0.1:5501,成功跨域访问。
2.原因分析:
浏览器url判断遵循字符串严格匹配!
- 浏览器执行 CORS 检查时要求 完全一致的域名匹配。
- 后端设置:
http://localhost:5501
- 前端页面使用:
http://127.0.0.1:5501
localhost
≠127.0.0.1
(浏览器视为两个完全不同的源)
URL的域名不同经过DNS转换,指向相同IP➡️不同源。
URL的域名相同经过DNS转换,指向不同IP➡️同源。
只需要考虑URL标识符是否严格匹配!!!