Включить CORS в WebForms [дубликат]

Могу я просто добавить; люди всегда предполагают, что это компьютерная проблема, но если вы считаете своими руками (база 10), вы не можете получить (1/3+1/3=2/3)=true, если у вас нет бесконечности, чтобы добавить 0.333 ... в 0.333 ... так, как и с (1/10+2/10)!==3/10 в базе 2, вы обрезаете ее до 0,333 + 0,333 = 0,666 и, вероятно, округлите ее до 0,677, что также будет технически неточным.

Подсчитайте в тройном, а третья не проблема, может быть, какая-то гонка с 15 пальцами на каждой руке спросит, почему ваша десятичная математика была сломана ...

11
задан O. Jones 25 February 2016 в 13:41
поделиться

6 ответов

Я рекомендую дважды проверять, что вы выполнили все шаги на этой странице: CORS на ASP.NET

В дополнение к:

Response.AppendHeader("Access-Control-Allow-Origin", "*");

Также попробуйте:

Response.AppendHeader("Access-Control-Allow-Methods","*");

Попробуйте добавить прямо в веб-конфигурацию:

<system.webServer>
   <httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Methods" value="*" />
       <add name="Access-Control-Allow-Headers" value="Content-Type" />
     </customHeaders>
   </httpProtocol>
</system.webServer>

В противном случае вам необходимо обеспечить контроль над обоими доменами.

7
ответ дан AhHatem 24 August 2018 в 05:38
поделиться

Вы можете сделать это в MVC

[EnableCors(origins: "*", headers: "*", methods: "*")]
public ActionResult test()
{
     Response.AppendHeader("Access-Control-Allow-Origin", "*");
     return View();
}
0
ответ дан Ankur Shah 24 August 2018 в 05:38
поделиться

Если вам нужен запрос перед полетом, например. поэтому вы можете отправлять аутентифицированные запросы, вы не можете установить Access-Control-Allow-Origin: *. Это должен быть конкретный домен Origin. Также вы должны установить заголовки ответов Access-Control-Allow-Methods и Access-Control-Allow-Headers, если вы используете что-либо помимо значений по умолчанию. (Обратите внимание, что эти ограничения - это то, как работает CORS - вот как это определено.)

Таким образом, недостаточно просто набросить атрибут [EnableCors], вы должны установить значения для параметров:

[EnableCors(origins: "https://www.olliejones.com", headers: "X-Custom-Header", methods: "PUT", SupportsCredentials = true)]

Или если вы хотите делать что-то вручную и явно:

HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "https://www.olliejones.com");
HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Headers", "X-Custom-Header");
HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Methods", "PUT");
HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Credentials", "true");

Последнее, что вам нужно вызвать .EnableCors() при запуске. В частности. MVC или WebAPI, вы бы назвали это на HttpConfiguration, при регистрации конфигурации и тому подобное, однако я понятия не имею, как это работает с WebForms.

2
ответ дан AviD 24 August 2018 в 05:38
поделиться

Для веб-формы вы можете использовать

Response.AddHeader («Access-Control-Allow-Origin», «*»);

вместо

Response.AppendHeader («Access-Control-Allow-Origin», «*»);

Первый работает для старой версии веб-формы ASP.Net.

0
ответ дан Joe Park 24 August 2018 в 05:38
поделиться

Я думаю, что ваш код выглядит хорошо, но IIS не отправляет объект заголовка в одиночку с ожидаемым ответом. Убедитесь, что IIS настроен правильно.

  • Конфигурирование IIS6
  • Настройка IIS7

Если CORS не работает для вашей конкретной проблемы, возможно, jsonp - еще один возможный способ.

-1
ответ дан marr75 24 August 2018 в 05:38
поделиться

Если вы используете метод AppendHeader для отправки заголовков, специфичных для кеша, и в то же время используйте модель объекта кэша (Cache) для установки политики кэширования, заголовки HTTP-ответов, относящиеся к кешированию, могут быть удалены при использовании модели объекта кэша , Такое поведение позволяет ASP.NET поддерживать самые ограничительные настройки. Например, рассмотрите страницу, содержащую пользовательские элементы управления. Если эти элементы управления имеют конфликтующие политики кэширования, будет использоваться наиболее ограничительная политика кэширования. Если один пользовательский элемент управления устанавливает заголовок «Cache-Control: Public», а другой пользовательский элемент управления устанавливает более ограничительный заголовок «Cache-Control: Private» через вызовы SetCacheability, тогда заголовок «Cache-Control: Private» будет отправлен с response.

Вы можете создать httpProtocol в веб-конфигурации для customHeaders.

<httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Methods" values="*" />        
     </customHeaders>
   <httpProtocol>
0
ответ дан Nirav Patel 24 August 2018 в 05:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: