如何检测http响应码?

How to detect http response code?

我使用 video.js 带有 HLS 的播放器。 我想检测每个失败请求的 HTTP 响应代码,video.js 用来播放视频。例如,如果响应是 304,那么我的代码需要执行特殊操作(显示消息)。

player.on('error', ...) 不提供此类信息。以及tech级错误。

我需要这样的东西: player.on('request', function(response) { ... }

我找到的最佳解决方案是用特殊处理程序包装 video.xhr 对象。

代码示例(使用 underscore.js 库):

videojs.xhr = _.wrap(videojs.xhr, function(fn, options, callback) {

            var wrapped_callback = _.wrap(callback, function(cb_fn, error, response) {
                var args = _.rest(arguments, 1);
                console.log('Error', error);
                console.log('Response', response);
                var res = cb_fn.apply(this, args);
                return res;
            });

        return fn.apply(this, [options, wrapped_callback]);
        });