Получение ошибок CORS при попытке протестировать загрузку на эмуляторе хранилища

Я пытаюсь проверить функцию загрузки для приложения html5, angularjs с помощью эмулятора хранилища Azure. По какой-то причине каждый раз, когда я отправляю файл на сгенерированный azure URL-адрес для локального хоста, я продолжаю получать ошибки CORS. Теперь в облачном экземпляре я использовал следующий код для добавления поддержки CORS, и он работает:

blobServiceProperties.Cors.CorsRules.Add(new CorsRule()
{
    AllowedHeaders = new List<string>() { "*" },
    //ExposedHeaders = new List<string>() {"*"},
    AllowedMethods = CorsHttpMethods.Post | CorsHttpMethods.Put | CorsHttpMethods.Get | CorsHttpMethods.Delete,
    AllowedOrigins = new List<string>() { "http://example.com" },
    MaxAgeInSeconds = 3600
});

Когда я пытаюсь запустить это для эмулятора, я получаю ошибки, указывающие на то, что это не разрешено. Нужно ли мне также настраивать CORS для эмулятора, и если да, то как мне это сделать, поскольку приведенный выше код не работает с эмулятором?


person user1790300    schedule 21.12.2015    source источник
comment
Когда и где выполняется этот фрагмент кода?   -  person haim770    schedule 24.12.2015
comment
WebApiConfig, у меня есть два отдельных решения: одно для веб-сайта и одно для проекта веб-API. Основная проблема заключается в том, что я продолжаю получать ошибки CORS при тестировании с эмулятора.   -  person user1790300    schedule 24.12.2015
comment
Я не получаю их в облаке, когда публикую веб-проект только на эмуляторе.   -  person user1790300    schedule 24.12.2015


Ответы (1)


Одна вещь, которую я хотел уточнить, согласно документации MSDN

«Службы хранилища Azure поддерживают совместное использование ресурсов между источниками (CORS) для служб BLOB-объектов, таблиц и очередей. Файловая служба поддерживает CORS, начиная с версии 2015-02-21».

И далее к тому

Вы можете задать правила CORS отдельно для каждой службы хранилища, вызвав Задать свойства службы BLOB-объектов, Задать свойства файловой службы, Задать свойства службы очередей и Задать свойства службы таблиц. После того как вы установите правила CORS для службы, правильно прошедший проверку подлинности запрос, сделанный для службы из другого домена, будет оцениваться, чтобы определить, разрешен ли он в соответствии с указанными вами правилами.

Поэтому мне любопытно, является ли служба файловой службой или просто службой больших двоичных объектов, похоже, вы включили CORS для службы больших двоичных объектов в соответствии с предоставленным фрагментом кода. Но вы не поместили фрагмент кода для функции загрузки, если вы делаете это через AJAX, вам нужно установить тип заголовка для типа BLOB-объекта службы Azure, иначе запрос на перекрестный источник может быть заблокирован на самом конце запрашивающей стороны, если он не может соответствует типу заголовка ответа службы.

Проверьте также эти две ссылки

Пример CORS службы Windows Azure

CORS для службы хранилища Azure

person shakeel osmani    schedule 30.12.2015