所以,當我發送文件到MVC控制器,但這個Kendo UI上傳運行良好,但我必須改變它,並直接發送到API控制器,但它失敗。ASP.Net MVC異步文件上傳到API與Kendo失敗
這是劍道上傳初始化代碼:
$("#files").kendoUpload({
async: {
saveUrl: "@WebApiHelper.GetUrl("Notification/UploadFile")",
removeUrl: "remove",
autoUpload: true
},
success: function(),
error: function()
}
在Chrome控制檯它顯示Load Canceled
在網絡選項卡中的請求的狀態文本:
請求的結果如下所示:
Request URL:http://localhost:45706/api/Notification/UploadFile
Request Method:OPTIONS
Status Code:200 Ok
Request Headers
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4
Access-Control-Request-Headers:origin, content-type
Access-Control-Request-Method:POST
Host:localhost:45706
Origin:http://localhost:1654
Proxy-Connection:keep-alive
Referer:http://localhost:1654/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
Response Headers
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:origin, accept, content-type
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin:*
allow-access-from domain:*
Cache-Control:no-cache
Content-Length:0
Date:Fri, 03 May 2013 16:53:30 GMT
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/8.0
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
X-SourceFiles:=?UTF-8?B?QzpcVXNlcnNcR0F0ZWNcRG9jdW1lbnRzXEdBdGVjXE9kaXNzZWlhXEFwcGxpY2F0aW9uXEdBdGVjLkFncm9XZWIuQ29yZVxHQXRlYy5BZ3JvV2ViLkNvcmUuQVBJXGFwaVxOb3RpZmljYXRpb25cVXBsb2FkRmlsZQ==?=
請注意,狀態碼是200,因爲我在方法中返回了它。因此,它達到API方法...
[HttpPost][HttpOptions]
public HttpResponseMessage UploadFile(HttpPostedFileBase files)
...但files
參數跳投null
。
這是API webconfig文件CORS相關屬性:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="allow-access-from domain" value="*" />
<add name="Access-Control-Allow-Headers" value="origin, accept, content-type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
有什麼想法?任何幫助將非常感激!
您的文件參數應該是IEnumerable文件 –
HaBo
2013-05-03 18:45:39
本文解決了CORS問題:[http://blogs.msdn.com/b/carlosfigueira/archive/2012/02/20/implementing-cors-support-在-ASP淨網頁apis.aspx(http://blogs.msdn.com/b/carlosfigueira/archive/2012/02/20/implementing-cors-support-in-asp-net-web-apis .aspx) – DontVoteMeDown 2013-06-06 12:58:34