Есть анонимный сервис с post и с другого локалхоста не получается достучаться без OPTIONS ендпоинта который заполнит нужные хедеры. Если уже делать этот OPTIONS эндпоинт, то хотелось бы не для каждого уровня с UriTemplate = "/{s}", а что-то типа UriTemplate = "*", но с "*" - не работает.
Вопрос как сделать что-бы матчило по всем входящим юрлам любой вложености(/) или как сделать что бы CORS не вываливался по другому.
Сейчас для каждого уровня пишется костыль типа:
[OperationContract]
[WebInvoke(Method = "OPTIONS", UriTemplate = "/{s}")]
public void GetOptions(string s) {
var outgoingResponseHeaders = HttpContextAccessor.GetInstance().Response.Headers;
outgoingResponseHeaders["Access-Control-Allow-Origin"] = "*";
outgoingResponseHeaders["Access-Control-Allow-Methods"] = "GET, POST, OPTIONS";
outgoingResponseHeaders["Access-Control-Allow-Headers"] = "Origin, Content-Type, Accept, X-Requested-With, X-Requested-With, x-request-source";
outgoingResponseHeaders["Access-Control-Request-Headers"] = "X-Requested-With, x-request-source, accept, content-type";
}
Делалось по гайду тут, но не сработало так как надо.
Нравится
Если есть такой вариант, то можно отключить проверку CORS, а именно:
1) В Web.config лоадера (внешний Web.config) заменить <add origin="*" allowed="false"/> на <add origin="*" allowed="true"/>
2) В web.config лоадера заменить <cors enabled="true"> на <cors enabled="false">
После этого можно попробовать выполнить запрос еще раз.