6

我正在努力让 Blueimp jQuery File-Uploader 在 Windows Server 2008 R2 上使用 IIS 7.5 在 MVC 3 上工作。我正在使用 HttpHandler 来处理被调用的上传。但是 HttpHandler 从不接收文件,也从不接收 HttpMethod“POST”或“PUT”,总是“OPTIONS”。有谁知道这里出了什么问题?

我从上传者的失败回调中得到的唯一消息是“错误”。

这是我的JS:

$('#fileupload').fileupload(
{
    acceptFileTypes: /(\.|\/)(pdf)$/i,
    fail: function (e, data) {
        alert("Error: " + data.errorThrown + " Text-Status: " + data.textStatus);
        // data.jqXHR;
    },
    maxNumberOfFiles: 1
    /*add: function (e, data) {
        data.formData = [{ name: "name1", value: "1" }, { name: "name2", value: "2"}];

        data.submit();
    },
    submit: function (e, data) {
        //data.formData = [{ name: "name1", value: "1" }, { name: "name2", value: "2"}];
    }*/
}
);

非常感谢您的帮助!

4

2 回答 2

4

好的,添加一些代码就可以了:

服务器端:

        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://example.net");
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Credentials", "true");

客户端:

$('#fileupload').fileupload(
{
    xhrFields: {
        withCredentials: true
    }
}
于 2012-02-20T16:33:48.273 回答
0

当您的页面从 domain1.com 提供并且您尝试上传到 domain2.com 时。您的 HTTP 发布请求已预检。

您的 domain2.com 实际上应该允许 domain1.com 上传文件。在不同的服务器上有不同的机制来做到这一点。

只需阅读有关如何为您的服务器(在这种情况下为 IIS)设置“Access-Control-Allow-Origin”的信息。

对于 Amazon S3,它非常简单,它们有一个您需要为此更新的策略 xml。

于 2013-01-07T10:39:54.157 回答