FineUploader - 在标头中添加身份验证

时间:2013-08-27 04:11:04

标签: javascript fine-uploader

我在跨域上传项目中使用FineUploader 3.7。在将代码移动到具有简单身份验证的客户端DEV服务器之前,一切都很好。当预检请求发送到服务器时,有没有办法在表单中嵌入身份验证信息?

我尝试在标头中嵌入基本身份验证,但不起作用。请参考以下代码:

$.ajaxSetup({
    headers: {
        'Authorization': "Basic YZVjaGFmbWluOkNieWxjBTY3"
    },
    beforeSend: function (jqXHR, settings) {
        jqXHR.setRequestHeader('Authorization', 'Basic YZVjaGFmbWluOkNieWxjBTY3');
    }
});

更重要的是,我试图设置自定义标题而没有运气:

var manualuploader = new qq.FineUploader({
  customHeaders: {
    'Authorization': 'Basic YXVjaGFkbWluOkNieWxjZTY3'
  },....

1 个答案:

答案 0 :(得分:13)

您的customHeaders选项未正确定义。 customHeadersrequest选项的属性,详见request option documentation

您的Fine Uploader集成代码应该如下所示:

var manualuploader = new qq.FineUploader({
    request: {
        endpoint: "path/to/your/server",
        customHeaders: {
            "Authorization": "Basic YXVjaGFkbWluOkNieWxjZTY3"
        }
    }
});

另外,请记住,jQuery的ajaxSetup对Fine Uploader的ajax / xhr调用没有影响。 Fine Uploader在内部完全不使用jQuery。 Fine Uploader提供的可选jQuery插件简单地包装了原生javascript库,通过支持与jQuery和jQuery插件相关的语法,可以轻松地将其用作jQuery插件。

此外,请注意,这些标题不会与IE9及更早版本的上传请求一起传递,因为IE9及更早版本不支持通过ajax / xhr上传。在这些浏览器中,会提交一个以iframe为目标的表单。如果是表单提交,则无法将自定义标头与请求关联。