Ich habe einen einfachen HTML5-Player, mit videoJS implementiert. Um die Quelldateien ordnungsgemäß vom Server abrufen zu können, muss in der Anforderung für das Video ein benutzerdefinierter Header festgelegt werden.Gibt es eine Möglichkeit, einen benutzerdefinierten http-Header in einen <video>-Quellaufruf aufzunehmen?
Da die Anwendung AngularJS verwendet, ich implementiert eine Interceptor die Header zu setzen:
myApp.factory('headerInterceptor', function() {
return {
request: function (config) {
config.headers['my-header'] = 'test';
return config;
}
};
});
myApp.config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('headerInterceptor');
}
Problem dabei ist, dass der Anruf an das Video wird durch sie nicht eingefangen, so dass keine Header (so dass er ist aber für andere Ressourcen). So eckig lädt die Videos nicht. Keine große Überraschung darin. Überprüfen des Netzwerk Registerkarte Entwicklertools, fand heraus, dass VideoJS den Anruf einleitet:
Doch die Suche nach dem Weg in der VideoJS Plugin schwierig war, und couln't finden, wo die Anrufe getätigt werden. Ich frage mich nur, gibt es eine einfache Möglichkeit, die Kopfzeile für diesen Anruf festzulegen? Es spielt keine Rolle, ob es sich um einfaches JavaScript handelt oder um eckiges oder sogar modifizierendes videoJS-Plugin.
warum haben Sie einen Request-Header für eine statische Ressource setzen müssen? – charlietfl
Anruf geht durch einen Proxy, der die Kopfzeile überprüft – ezabaw
haben Sie keine Lösung gefunden, außer HLS-Plugin verwenden? – D0dger