[英]OWIN preflight requests are not processed
中間件不處理從瀏覽器到我的自托管OWIN WebAPI的所有預檢請求。 如果我向郵遞員提出了OPTIONS請求,則它們將被處理。 為什么會有這樣的行為?
請求方法:OPTIONS
狀態碼:401未經授權的遙控器
地址:[:: 1]:9000
接受: /
接受編碼:gzip,deflate,sdch,br
接受語言:ru-RU,ru; q = 0.8,en-US; q = 0.6,en; q = 0.4
訪問控制請求標頭:內容類型
訪問控制請求方法:POST
連接方式:保持活躍
主機:localhost:9000
引薦來源: http:// localhost:8080 /
用戶代理:Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 56.0.2924.87 Safari / 537.36
Chrome響應標題:
內容長度:0
日期:2017年2月8日,星期三04:17:26 GMT
伺服器:Microsoft-HTTPAPI / 2.0
WWW認證:NTLM
郵遞員的響應標頭:
訪問控制允許憑證→true
訪問控制允許來源→chrome擴展名:// fhbjgbiflinjbdggehcddcbncdddomop
允許→POST
內容長度→76
內容類型→application / json; 字符集= utf-8
日期→2017年2月8日星期三04:21:02 GMT
服務器→Microsoft-HTTPAPI / 2.0
我在Appbuilder中添加了偽造的中間件:
public void BuildWebApi(IAppBuilder appBuilder)
{
appBuilder.Use(async (ctx, next) =>
{
await next();
});
並將斷點放置到“ await next()”行。 因此,斷點不會在瀏覽器發出預檢請求時停止,而在郵遞員OPTIONS響應時停止。
解決了
HttpListener listener = (HttpListener)appBuilder.Properties["System.Net.HttpListener"];
listener.AuthenticationSchemeSelectorDelegate = request =>
{
if (request.HttpMethod == "OPTIONS")
{
return AuthenticationSchemes.Anonymous;
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.