服务器上有一个方法应该返回一个文件以供下载或带有文本的错误(例如,如果找不到文件)。
如果文件存在并打开,那么一切都很好,但如果不存在,用户需要显示服务器返回的消息。
当我使用 jQuery 发送请求时,此消息来自错误函数
error: function(msg) {
UserMessage.showMessage("Ошибка при загрузке документов!", msg.responseJSON, "danger");
}
但是JQUery不适合我,因为我需要在readyState == 2时停止请求,而我在JQuery中没有找到这样的机会。只有成功。
因此我使用原生 XMLHttpRequest。但问题是在这种情况下我不知道如何从服务器获取此消息。我就是找不到。我什至尝试通过Restlet客户端发送这个请求,但我只得到一个错误状态,服务器发送的消息根本找不到。某种魔法。
总的来说,我尝试了很多东西,尝试改变responseType,其他请求参数。结果,详细对比了JQuery和原生XMLHttpRequest生成的发送请求的headers,发现原生请求中缺少header
没有它,作为响应,不是服务器发送的消息,而是一个带有错误代码和描述的标准基于浏览器的 HTML 页面。
对我来说,解决方案一点也不明显,所以我希望它对某人有用。