如何检测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]);
});
我使用 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]);
});