我正在使用ASP.NET Web API构建Web服务(和站点)的原型,该原型具有下载文件的方法.当前端的用户按下导出按钮时,控制器发出并接收jQuery ajax GET请求,然后控制器调用名为Excel的方法(如下所示).该方法运行没有任何问题并完成.当我在标题中查看Chrome时(请参阅https://skydrive.live.com/redir?resid=2D85E5C937AC2BF9!77093),它会收到响应(据我所知)所有正确的标题.
我正在使用Basic Auth,因此使用http授权头传输用户凭据,我已使用Ajax选项手动将其添加到每个jQuery Ajax请求中.
var excelRequest = $.ajax({
url: 'http://localhost:59390/api/mycontroller/excel',
cache: false,
type: 'GET',
data: gridString,
dataType: 'json',
contentType: 'application/json; charset=utf-8'
});
$.ajaxSetup({
beforeSend: function (xhr) {
SetAuthRequestHeader(xhr)
}
});
function SetAuthRequestHeader(jqXHR) {
var usr = "Gebruiker2"; // TODO: Change, this is for testing only.
var pw = "Wachtwoord23";
jqXHR.setRequestHeader("Authorization", "Basic " + Base64.encode(usr + ":" + pw));
}
Run Code Online (Sandbox Code Playgroud)
我的原型有一些我应该提到的特征:
在Authorization标头中使用Basic Auth
Web服务和调用该服务的网站位于不同的域中,因此我使用CORS并将以下内容添加到web.config中
Run Code Online (Sandbox Code Playgroud)<httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="access-control-allow-headers" value="Content-Type, Authorization, Accept" …
c# asp.net basic-authentication asp.net-mvc-4 asp.net-web-api