У меня есть веб-API, который уже включил CORS.Я уже включил в код:
WebApiConfig.cs
config.EnableCors(new EnableCorsAttribute("*", headers: "*", methods: "*"));
MyController.cs
[EnableCors(origins: "*", headers: "*", methods: "*")]
I 'm использовать Microsoft.AspNet.WebApi.Cors в пакете NuGet, чтобы использовать библиотеку для включения CORS.Но когда я пытался вызвать API во внешнем интерфейсе с помощью JQuery, у меня все еще была эта ошибка:
GET http://localhost:52259/api/coreactivities/getAllTeams 401 (Unauthorized)
Access to XMLHttpRequest at 'http://localhost:52259/api/coreactivities/getAllTeams' from origin 'http://localhost:52349' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Я также попытался включить эту строку кода в Web.config API, но все равно получилошибка 401 Несанкционированный.В моем API у меня нет или я не установил никакой аутентификации в этом случае.
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, HEAD, OPTIONS" />
<add name="Access-Control-Allow-Credentials" value="true"/>
<add name="Access-Control-Allow-Headers" value="X-Requested-With, origin, content-type, accept" />
</customHeaders>
</httpProtocol>
</system.webServer>
Я не знаю, что неправильно или отсутствует в моем коде, чтобы разрешить перекрестное происхождение.
Есть предложения?
Добавлен мой вызов JQuery:
function displayTeam() {
var url = 'http://localhost:52259/api/coreactivities/getAllTeams';
$.get(url, function (result) {
console.log(result);
}).done(function (data) {
console.log(data);
})
.fail(function (error) {
console.log(error);
});
}