jQuery BlueImp文件上传授权

时间:2015-07-10 20:59:18

标签: jquery asp.net-web-api jquery-plugins blueimp request-headers

我正在尝试使用ASP.NET WebAPI后端实现jQuery Bluimp文件上载控件(从这里:https://github.com/blueimp/jQuery-File-Upload),但有点麻烦。后端最终会支持移动应用,因此已经通过此方式启用了CORS(Register方法WebApiConfig):

config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

整个后端被一个身份验证处理程序锁定,该处理程序覆盖SendAsync方法以查看request.Headers.Authorization,提取参数并验证我的问题所在的请求。无论我尝试什么(包括来自这个SO链接:jQuery-File-Upload by blueimp - additional headers),我都无法让控件将标头发送到后端,从而阻止我在允许它保存之前验证上传请求。我尝试过的各种方法是:

        $(function() {
          $('#fileupload').fileupload({
            add: function(e, data) {
              data.headers = {
                'Authorization': 'Basic ' + $.cookie('auth')
              };
              data.submit();
            },
            headers: {
              Authorization: 'Basic ' + $.cookie('auth')
            },
            beforeSend: function(xhr) {
              xhr.setRequestHeader("Authorization", 'Basic ' + $.cookie('auth'));
            },
            xhrFields: {
              "Authorization": 'Basic ' + $.cookie('auth')
            },
            requestHeaders: {
              "Authorization": 'Basic ' + $.cookie('auth')
            },
            singleFileUploads: false,
            dataType: 'jsonp',
            url: window.core.get_serverUrl() + 'upload/uploadcasefile',
            done: function(e, data) {
              $.each(data.result.files, function(index, file) {
                $('<p/>').text(file.name).appendTo(document.body);
              });
            }
          });
        });

关于如何强制发送标题的任何想法?最终我只是尝试实现拖放文件上传,甚至不需要这个控件的大多数功能,但它似乎有一些不错的选择。如果我可以让它发送标题,我想我会被设置。

1 个答案:

答案 0 :(得分:0)

但这可能有点旧,人们可能会在未来遇到这种情况。可以选择包含标题。它被视为与所有其他选项一样: 即所需要的只是在选项对象的“headers”对象中使用您想要的标题更新选项。