react中fetch怎么一直是相对路径?

作者站长头像
站长
· 阅读数 5

fetch("www.baidu.com", {...})通过response.url得到的显示我实际上fetch的路径是"http://localhost:????/www.baidu.com"

而我改成fetch("https://www.baidu.com", {...})则response.url显示我实际上fetch的路径竟然是空的

项目就是直接create-react-app弄的,查了半天不知道问题出在哪里

回复
1个回答
avatar
test
2024-07-09
  • 如果路径不以斜线/开头,会被拼接到当前域名的当前目录下;

    open('www.baidu.com') 打开的是 https://segmentfault.com/q/www.baidu.com
  • 如果路径以单斜线/开头,会被拼接到当前域名下;

    open('/www.baidu.com') 打开的是 https://segmentfault.com/www.baidu.com
  • 如果路径以双斜线//开头,则可以解析双斜线后面的域名,但是使用与当前页面相同的协议(http/https);

    open('//www.baidu.com') 打开的才是 https://www.baidu.com。一般推荐这种使用方法。
  • 如果路径以协议+双斜线开头,视为完整的路径,浏览器不会修改。

另外,fetch('https://www.baidu.com')跨域了,会被 CORS 阻断,所以从 JS 无法获取到经过浏览器处理之后的 URL,但是可以通过浏览器开发者工具的“网络(Internet)”工具查看请求信息:answer image

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容