问题原因:
使用VSCode连接远程服务器时,出现XHR failed问题,但是使用终端SSH连接上。问题出现的原因是SSH插件在连接远程服务器时,会在服务端自动运行某些脚本,检查远程服务器的运行,那么当远程服务器上不存在这个脚本或者存在这个脚本但由于某种原因不能运行时,需要重新下载这个脚本,当下载这个脚本时,如果出现下载失败,那么就会出现XHR failed问题。
问题解决:
既然问题出现在脚本下载的过程中,那么可以在本地下载脚本,然后通过终端传到目标位置。
首先,你需要找到出现问题的commit id。在VSCode的输出中会出现需要下载的commit id。
然后通过Xshell(windows)或者Termius(mac)等SSH软件连接远程服务器,显示下方文件夹中的文件
ls ~/.vscode-server/bin
然后可以看到用户所有的commit id,找到刚刚输出中的commit id,如果存在,则将commit id的文件夹中的内容删除,若不存在,则创建一个以commit id命名的文件夹。
之后在本地下载所需要的脚本: https://update.code.visualstudio.com/commit:XXX(Your commit id)/server-linux-x64/stable
下载后会得到一个vscode-server-linux-x64.tar.gz,然后通过sftp等方法传输到远程服务器刚刚创建的commit id的文件夹中,然后在这个文件中解压该压缩包。
tar -xvzf vscode-server-linux-x64.tar.gz --strip-components 1
解压完成后,重新连接服务器成功!!!