我正在努力让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"}];
}*/
}
);
非常感谢您的帮助!
答案 0 :(得分: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
}
}
答案 1 :(得分:0)
当您从domain1.com提供网页并尝试上传到domain2.com时。 您的HTTP帖子请求已预检。
你的domain2.com实际上应该允许domain1.com上传文件。 在不同的服务器上有不同的机制来做到这一点。
在这种情况下,请阅读有关如何为您的服务器设置“Access-Control-Allow-Origin”的信息。
对于Amazon S3,它非常简单,它们有一个策略xml,您需要为此更新。