![](/img/trans.png)
[英]Ajax POST call blocked by CORS from ASP NET Web API - Response to preflight request doesn't pass access control check
[英]asp.net web api angular CORS preflight issue with POST requests
我有一個配置為使用WINDOWS AUTHENTICATION的webapi。
var cors = new EnableCorsAttribute(origen, "*", "*") { SupportsCredentials = true };
config.EnableCors(cors);
在我的角度應用程序中,我有以下幾種方法:
GET方法工作完美。
result.CargarAreas = function (callBack, onError) {
//url = WebApi + "Personas";
var url = constants.apiPath + "Areas";
//$http.get(url, { headers: { "Access-Control-Allow-Origin": constants.serverPath } })
$http.get(url, {
withCredentials: true
})
.then(function (data) {
callBack(data);
})
.catch(function (data) {
onError(data);
});
};
POST方法給我這個錯誤:
result.GuardarContacto = function (callBack, onError, data) {
//url = WebApi + "Contactos";
var url = constants.apiPath + "Contactos";
$http.post(url, data, { headers: { "Access-Control-Allow-Origin": constants.serverPath } })
.then(function (data) {
callBack(data);
})
.catch(function (data) {
onError(data);
});
};
最后是Web api方法
[HttpGet]
[Route("api/AutenticationSite")]
public IHttpActionResult AutenticationSite()
{
string user = HttpContext.Current.Request.LogonUserIdentity.Name.ToString();
string[] subUser = user.Split('\\');
bool respuesta = UsuariosDao.Authorize(subUser[1]);
if (respuesta == true)
{
return Ok("Authenticated: " + user);
}
else
{
return BadRequest("Not authenticated" );
}
}
以及我們一直在努力解決的DAMN錯誤:
XMLHttpRequest無法加載http:// abcom / api / Contactos 。 對預檢請求的響應未通過訪問控制檢查:請求的資源上不存在“ Access-Control-Allow-Origin”標頭。 因此,不允許訪問來源“ http:// abcom ”。 響應的HTTP狀態碼為401。
更新1
有關請求和響應的信息
請求URL: http:// abcom / api / Contactos請求方法:OPTIONS狀態碼:200 OK遠程地址:181.143.YY.XX:80引用者策略:no-referrer-when-downgrade響應標題(11)請求標題查看源接受: /接受編碼:gzip,放氣,sdch接受語言:es-ES,es; q = 0.8 Access-Control-Request-Headers:content-type Access-Control-Request-Method:POST Cache-Control:no -cache連接:keep-alive主機:abcom來源: http:// abcom語法 :no-cache參考網址:http://abcom/Index.html User-Agent:Mozilla / 5.0(Windows NT 10.0
刪除角度代碼中的訪問控制標頭設置。 似乎您已在多個位置設置了此標頭,因此盡管您的Web API代碼啟用了cors,但輸出卻沒有。
密切注意,提防,小心
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.