Нет заголовка «Access-Control-Allow-Origin» в Azure - PullRequest
0 голосов
/ 03 мая 2018

У меня есть служба приложений API Azure. Я добавил * к настройкам CORS в нем.

У меня есть другое веб-приложение в Azure, где я выполняю вызовы приложения Azure API.

Пример: https://XXXXXX.XXXXXX.net/api/XXXXXX

Звонки работают, когда API работает с небольшими видеофайлами, но всякий раз, когда размер видео превышает 20 Мб, я всегда получаю -

No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:9000' is therefore not allowed access. 
The response had HTTP status code 500

API принимает идентификатор из запроса POST и работает с видео в папке в хранилище Azure Media. Эта ошибка не возникает, когда видео меньше 20 МБ.

Есть идеи, в чем может быть проблема?

Я продолжаю получать

500 - истекло время ожидания запроса. Веб-сервер не смог ответить в течение указанного времени. Ответ и ошибка CORS на консоли.

Вызов API работает и делает свое дело, хотя.

Вот как выглядит web.config

<system.web>
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime targetFramework="4.6.1" maxRequestLength="5097151" executionTimeout="1800" />
    <httpModules>
      <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
    </httpModules>
  </system.web>

  <system.webServer>
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="5097151000"/>
      </requestFiltering>
    </security>
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
      <remove name="ApplicationInsightsWebTracking" />
      <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
    </modules>
    <httpProtocol>

    </httpProtocol>
  </system.webServer>

Ответы [ 3 ]

0 голосов
/ 03 мая 2018

Заголовок CORS не возвращается, потому что ответ HTTP 500, скорее всего из-за полезной нагрузки, превышающей максимально допустимый размер.

Измените ваш web.config с большим значением:

<configuration>
   <system.webServer>
      <security>
         <requestFiltering>
            <requestLimits maxAllowedContentLength="{value In Bytes}"/>
         </requestFiltering>
      </security>
   </system.webServer>
</configuration>

От MSDN (выделено мое) & mdash;

maxAllowedContentLength

Необязательный атрибут uint. Задает максимальную длину содержимого в запросе в байтах. Значением по умолчанию является 30000000, что составляет приблизительно 28,6 МБ.

0 голосов
/ 30 мая 2018

Если заголовок CORS не возвращается, а для параметра CORS установлено значение , то, вероятно, происходит сбой приложения из-за исключения, и он слишком велик для десериализации. Это была моя проблема.

Попробуйте отладить его с помощью лазурного кли.

0 голосов
/ 03 мая 2018

Заявка, на которую вы отправляете запрос, не принимает Cross-Origin Resource Sharing (на стороне сервера) Самый простой способ решить это позволить им =)

Простой способ сделать это: https://docs.microsoft.com/en-us/rest/api/storageservices/cross-origin-resource-sharing--cors--support-for-the-azure-storage-services

...