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

У меня есть веб-приложение .NET Core, которое я размещаю в Azure Web Apps.Одна из его функций - анализировать серверные XML-каналы.

Логика работала до недавнего времени, когда RSS-каналы перестают возвращать данные при вызове через C #.Вы можете просматривать RSS-канал при доступе через браузер.

Проблема

Решение теперь работает только на локальном хосте.Если я вызываю RSS-каналы напрямую, используя AJAX, я получаю эту ошибку:

Ответ на предпечатный запрос не проходит проверку контроля доступа: заголовок «Access-Control-Allow-Origin» отсутствуетзапрашиваемый ресурс.Origin 'http://blah.azurewebsites.net', следовательно, не разрешен доступ.

Насколько я понимаю, сервер не включил заголовок в ответ?

Но тогда как этовеб-сайт https://codebeautify.org/rssviewer удалось вернуть RSS-канал?

Javascript

var data = [
    { title: "UK", Url: "http://feeds.bbci.co.uk/news/uk/rss.xml" },
    { title: "World", Url: "http://feeds.bbci.co.uk/news/world/rss.xml" }
];

$.ajax({
    method: "POST",
    contentType: "application/json",
    data: JSON.stringify(data),
    url: "api/xml",
    success: (data) => {
        // do stuff
    }
});

C #

public MyResponse Get(List<MyRequest> requests)
{
    foreach(var request in requests)
    {
        request.XDocument = XDocument.Load(request.Url);
    }

    return new MyResponse(requests);
}

1 Ответ

0 голосов
/ 14 октября 2018

Оказывается, данные POST не были получены моим контроллером, когда код был развернут в Azure.Не уверен, почему, но я смог убедиться в этом, настроив удаленную отладку, следуя этому руководству https://docs.microsoft.com/en-us/azure/app-service/web-sites-dotnet-troubleshoot-visual-studio.

При следовании этому руководству я столкнулся с проблемой, что мой Visual Studio 2017 Community Edition не смог найтиInternet Explorer.

По сути, Visual Studio ищет iexplore.exe, которого у меня по какой-то причине не было (может, потому что Edge присутствует?).Я использую Windows 10 Home, версия 10.0.17134.

Компьютер \ HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Windows \ CurrentVersion \ Пути к приложениям \ IEXPLORE.EXE

Чтобы решить эту проблему, я установил Internet Explorer 11.

  1. Нажмите клавишу Windows
  2. Поиск управления дополнительными функциями
  3. Нажмите Добавить функцию
  4. Найти Internet Explorer
  5. Установить, перезагрузить, чтобы завершить установку

Я не понял, почему данные POST не были получены, но в качестве временного обходного пути мне не нужно былоотправить данные из JS, поэтому я тем временем переместил данные на контроллер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...