【问题标题】:Add custom headers before upload with Primeng's FileUpload component使用 Primeng 的 FileUpload 组件在上传前添加自定义标头
【发布时间】:2017-06-09 02:31:08
【问题描述】:

我们如何在文件上传的 http 请求(如身份验证)中添加自定义标头?

【问题讨论】:

    标签: angular typescript primeng


    【解决方案1】:

    Angular 8 onBeforeSend 之后不再使用需要使用 headers 输入属性

    在视图中

    <p-fileUpload name="myfile[]" url="./upload.php" [headers]="httpHeaders"></p-fileUpload>
    

    在组件中

        httpHeaders:HttpHeaders ;
    
        httpHeaders.set('channel', Channel.AT.toString())
        httpHeaders.set('loginId', Settings.user.userId.toString())
        httpHeaders.set('sesnId', Settings.auth.token)
        httpHeaders.set('commVer', Settings.app.version)
        httpHeaders.set('clientIp', Settings.user.clientIp)  
        httpHeaders.set('uniqueRequestId', Guid.MakeNew().ToString();
    

    【讨论】:

    • 我可以将问题发送给您吗?
    • 我添加了 this.httpHeaders = { 'Authorization': Bearer ${token} };在组件构造函数上。为我工作。
    【解决方案2】:

    我们使用onBeforeSend 事件:

    private onBeforeSend(event) {
        event.xhr.setRequestHeader("Authorization", "Bearer " + sessionStorage.getItem("AccessToken"));
    }
    

    【讨论】:

    • 确保您查看事件,onBeforeSend 是在发出任何请求之前,因此您需要在此处添加标头,onBeforeUpload 仅在发送文件/表单数据之前,即抓住了我。
    • onBeforeSend 在 primeNg 8 (angular 8) 之后不再有效,使用 headers 属性作为输入
    猜你喜欢
    • 2017-03-23
    • 2017-07-13
    • 1970-01-01
    • 2019-04-12
    • 2021-09-10
    • 2018-05-14
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多