WebUploader 파일 업로드 플러그인에 대한 headers.질문 차단

4384 단어

WebUploader 이벤트 설명

uploadBeforeSend
  • object  {Object}
  • data {Object} 기본 업로드 매개 변수입니다. 이 대상을 확장해서 업로드 매개 변수를 제어할 수 있습니다
  • headers {Object} 이 객체를 확장하여 업로드 헤드를 제어할 수 있습니다

  • 어떤 파일의 블록이 발송되기 전에 터치하면, 주로 부수적인 파라미터를 추가할지 묻는 데 사용되며, 큰 파일은 블록을 나누어 업로드하는 전제에서 이 사건을 여러 번 터치할 수 있습니다.
    [WebUploader API 문서]
    angularjs에 차단기를 추가합니다. 예를 들어 다음과 같습니다.
    // token
    sxApp.factory('sessionInjector', function ($rootScope,locals) {
        // Service logic$rootScope.sysuser.token
        var sessionInjector = {
            request: function(config) {
                config.headers.token =  locals.getObject("accessToken");
                if(config.method=="POST"){
                    ... ...
                }
                return config;
            }
        };
        return sessionInjector;
    });

    여기 headers.token은 WebUploader 플러그인에 작용하지 않습니다. 이 때 WebUploader에서 헤더를 설정하고 웹uploader를 찾아야 합니다.js의 uploadBeforeSend 방법, 업로드 방법doSend에 정의된 헤더에 헤더를 추가합니다.token = GlobalConfig.token;이 코드
                 /**
                 * @event uploadBeforeSend
                 * @param {Object} object
                 * @param {Object} data  , 。
                 * @param {Object} headers  。
                 * @description  , , 。
                 * @for  Uploader
                 */
    
                //
                _doSend: function( block ) {
                    var me = this,
                        owner = me.owner,
                        opts = me.options,
                        file = block.file,
                        tr = new Transport( opts ),
                        data = $.extend({}, opts.formData ),
                        headers = $.extend({}, opts.headers ),
                        requestAccept, ret;
    
                    headers.token = GlobalConfig.token;
                    block.transport = tr;
    
                    tr.on( 'destroy', function() {
                        delete block.transport;
                        me._popBlock( block );
                        Base.nextTick( me.__tick );
                    });

    주의:angularjs와 jQuery 사이의 값 전달이 비교적 번거롭기 때문에, 여기에 전역 변수 GlobalConfig를 설명합니다.token, angularjs와 jQuery 사이에서 값을 전달합니다.
    config.js에 글로벌 변수가 표시됩니다.
    function GlobalConfig(){
    
    }
    GlobalConfig.token="";
    (function(){
    
    })();

    앱에서.js에서 전송된 값:
    GlobalConfig.token = locals.getObject("accessToken");

     
    전재 대상:https://www.cnblogs.com/miny-simp/p/9087348.html

    좋은 웹페이지 즐겨찾기