Я уже несколько дней борюсь с проблемой CORS, и я застрял. У меня есть угловое приложение, пытающееся сделать простую HTTP-запись данных Json.CORS предвключает WebAPI2, не возвращая правильные заголовки
Я пошел вниз по маршруту, описанному здесь: ASP.NET Web API - CORS Support in ASP.NET Web API 2 С пользовательской фабрике, и я поставил свою web.config в качестве:
<handlers>
<remove name="WebDAV"/>
<remove name="OPTIONSVerbHandler"/>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
Мой $ HTTP POST вызов:
var serviceEndpoint = "https://mybox/ourservices/myservices/1.0.0.1/api/process";
var requestData ={'FirstName':'Nick','LastName':'Jacobs'};
$http({
method: "POST",
url: serviceEndpoint,
withCredentials: true,
data: requestData,
headers: {
'Content-Type': 'application/json',
'Accept':'application/json'
}
})
.success(function (data, status, headers, config) {
// I need to pick off the user name from the JSON that's returned.
console.log(data);
deferred.resolve(data);
})
.error(function (data, status) {
deferred.reject(data);
});
Дело в том, что я вижу запрос перед полетом на сервер, он передает мое происхождение и запрашивает соответствующие заголовки, но я не получаю ни одного из заголовков ответа CORS. Если я войду в web.config и добавлю разрешенные методы, я увижу, что вернусь, но поскольку я использую withCredentials, тогда я не могу использовать заголовок ответа на исходный исходный код, и я надеялся, что описанная фабрика в документе MSDN выше, я бы решил свою проблему.
Любые идеи, что мне не хватает?
Thanks eveyrbody!
Трассировка показывает мне, что запрос даже не доходит до моего кода. Это делает его на моем сервере. (Весь полный IIS на Win10). –