У меня есть один сценарий для отправки запроса на отправку ajax с http на https (нужно сделать это по некоторым сложным причинам), и мне нужно передать учетные данные для файлов cookie.EnableCors всегда возвращает шаблон для разрешенных источников в Web Api
Я использую Web Api на стороне сервера, с пакетом NuGet Microsoft.AspNet.WebApi.Cors, чтобы включить запрос Cors.
Код в стороне клиента:
$.ajax({
url: 'https://www.sitename.com/api/xxx',
type: 'post',
data: {
'': 1
},
headers: {
'__AntiXsrfTokenKey': 'whatevertokenhere'
},
xhrFields: {
withCredentials: true
},
dataType: 'json',
success: function (data) {
}
});
настройки Web Api:
config.EnableCors();
EnableCors атрибут для контроллера:
[EnableCors(origins: "http://www.sitename.com", headers: "*", methods: "*", SupportsCredentials = true)]
public class XXXController : ApiController
Предполетный заголовка запроса:
Access-Control-Request-Headers: accept, __AntiXsrfTokenKey, content-type
Access-Control-Request-Method: POST
Origin: http://www.sitename.com
Заголовок ответа:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: __AntiXsrfTokenKey,content-type
Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS
Access-Control-Allow-Origin: *
Проблема явно, что Access-Control-Allow-Origin заголовок возвращает метасимволы *, вместо запроса происхождения, которые я указал в атрибуте контроллера 'http://www.sitename.com ». Так что я в конечном итоге ошибки:
A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin 'http://www.sitename.com' is therefore not allowed access.
знает любой, почему такое поведение и как я могу установить домен Access-Control-Allow-Origin правильно в EnableCors атрибут?