一、问题背景
项目环境要求在Ubuntu上进行开发,而我习惯了使用vscode来编写代码,于是想让vscode远程连接至虚拟机的Ubuntu上,在连接过程中出现连接失败XHR failed的错误。
二、解决过程
根据XHR failed这个错误在网上寻找解决办法,发现解决办法大致分为两种:
1.回退vscode版本
老版本的vscode似乎没有这个问题,这一点在我之前使用的版本中确实没有出现这个问题,只是换了新电脑下载的新版本vscode才出现此问题,当前电脑的vscode版本为1.83.1,由于忘记之前使用的是哪个版本于是便想随便找个早期的版本下载,结果发现官网似乎不支持之前vscode版本下载,此方法遂失败。
当前vscode版本信息:
在官网随便选了个23年早期的版本点击下载后是这样的,显示url是无效的,只有最新的几个版本点击后程序包可正常下载。
2.手动下载vscode-server
大部分帖子推荐的是这种方法,但是我找了几个帖子按照他们提供的链接进行修改后却依旧失败,比如这一个:
https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable
我替换了commit_id后依旧显示url无效,问题被卡住。
三、解决办法
在不断的寻找过程中,发现有一篇博客说vscode的域名已改变,所以无法使用之前的域名去下载(原博客暂时找不到了,大致是这意思)。于是我使用该博客提供的新域名最终解决此问题。
过程如下:
1.使用以下链接在浏览器上下载vscode-server
https://vscode.download.prss.microsoft.com/dbazure/download/stable/${commit_id}https://vscode.download.prss.microsoft.com/dbazure/download/stable/
commit_id替换为自己vscode版本的commit_id,可在上面图示的vscode版本信息中查看,所以我的下载路径为:
2.在ubuntu中替换vscode-server
在ubuntu中进入.vscode-server文件夹的bin目录下,会有一个以commit_id命名的文件夹。进入该文件夹下一般会有一个未下载完成的vscode-server-linux-x64.tar.gz压缩包·,删除或替换此压缩包,最后将之前下载的压缩包解压到此处,或者提前解压好将压缩包内的东西移到此处。
文件夹下的最终内容:
最终再通过vscode进行远程连接成功。
四、写在最后
此问题看起来像是remote-ssh插件与vscode的兼容性问题,希望vscode团队能早日解决此问题,这样后续的版本使用或许就不需要在如此麻烦了。此文章仅用于问题记录和参考,在此再次感谢那位提供域名的老哥助我解决了问题,希望这篇博客也能帮助到有需要的人。