react中fetch怎么一直是相对路径?
fetch("www.baidu.com", {...})
通过response.url得到的显示我实际上fetch的路径是"http://localhost:????/www.baidu.com"
而我改成fetch("https://www.baidu.com", {...})
则response.url显示我实际上fetch的路径竟然是空的
项目就是直接create-react-app弄的,查了半天不知道问题出在哪里
回复
1个回答
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)”工具查看请求信息:
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容