Поле автозаполнения / мгновенных результатов поиска перестало работать после изменения сайта ASP.NET с HTTP на HTTPS

У меня есть сайт ASP.NET, на котором я реализовал функцию автозаполнения / мгновенного поиска для поиска имен пользователей. У меня есть страница SearchResults.aspx, которая по сути отображает список пользователей JSON, соответствующих переданной ей строке запроса "поисковый запрос". JSON извлекается из Azure Active Directory с помощью функции AWS Lambda.

Это загрузка страницы;

protected void Page_Load(object sender, EventArgs e)
{
    if (!Request.IsAuthenticated)
    {
        HttpContext.Current.GetOwinContext().Authentication.Challenge(
            new AuthenticationProperties { RedirectUri = "/" },
            OpenIdConnectAuthenticationDefaults.AuthenticationType);
    }

    List<Users> Results = GetADUsers(Request.QueryString["term"]);

    Response.ContentType = "application/json;charset=UTF-8";
    var output = (from r in Results
                  select new { label = r.Name}).ToList();

    // Then we need to convert it to a JSON string

    JavaScriptSerializer Serializer = new JavaScriptSerializer();
    string JSON = Serializer.Serialize(output);

    // And finally write the result to the client.

    Response.Write(JSON);
}

И это функция для получения пользователей:

 List<Users> GetADUsers(string searchParameter)
        {
            List<Users> ret = new List<Users>();
            try
            {
                using (var client = new AmazonLambdaClient(Amazon.RegionEndpoint.APSoutheast2))
                {
                    var request = new InvokeRequest
                    {
                        FunctionName = ConfigurationManager.AppSettings["lambdaArnPrefix"] + "lambda-wlyw-GetAzureAdUsers",
                        Payload = "\"" + searchParameter + "\"",
                        InvocationType = InvocationType.RequestResponse

                    };
                    var response = client.Invoke(request);

                    string result;
                    using (var sr = new StreamReader(response.Payload))
                    {
                        result = sr.ReadToEnd();
                    }

                    dynamic _userList = JsonConvert.DeserializeObject(result);

                    for (int i = 0; i < _userList.Count; i++)
                    {
                        ret.Add(
                            new Users
                            {
                                Name = _userList[i].userName
                            });
                    }
                }
            }
            catch (Exception ex)
            {
                ret.Add(new Users() { Name = ex.Message });
            }
            return ret;
        }

Затем у меня есть моя главная страница, на которой есть поле поиска, которое в основном использует контент со страницы SearchResults.aspx для заполнения результатов на основе того, что введено в поле поиска (почти как использование SearchResults.aspx как веб-сервис) .

    <script>
$(function() {
            $( "#tags" ).autocomplete({ source: "/SearchResults.aspx" });
    });
    </script>

Вышеупомянутый javascript ссылается на этот ввод:

                                    <div class = "ui-widget">
                                        <input id = "tags" runat = "server"/>
                                    </div>

И использует доступный здесь javascript автозаполнения - http://leaverou.github.io/awesomplete (который я не делал, я просто использую).

Эта функция AWS Lambda при тестировании работает нормально. Страница SearchResults.aspx отлично работает при тестировании в браузере. Однако после перехода с HTTP на HTTPS текстовое поле, в котором ввод должен запускать весь этот процесс, перестал работать. Не понимаю почему. Может быть, переход от HTTP к HTTPS - отвлекающий маневр? Но это единственное изменение, которое я сделал? Кто-нибудь может придумать причину, по которой это больше не работает?

Я почти ничего не знаю о JavaScript, но я пробовал использовать отладчик Firebug JS? И я мог отметить одну вещь: скрипт awesomeplete.js не отображается в списке загруженных скриптов, когда я нахожусь на странице .aspx, содержащей поле поиска? У него есть другие сценарии * .js, которые являются частью среды начальной загрузки. Понятия не имею, имеет это значение или нет.

JamesMatson 20.07.2018 10:29

Я исправил эту ошибку «VoteWho: 1 смешанный контент: страница« wlyw.cloudy-skies.org/VoteWho »была загружена по HTTPS, но запросила небезопасный скрипт« code.jquery.com/ui/1.9.1/jquery-ui.js ». Этот запрос был заблокирован; контент должен обслуживаться по HTTPS». вместо этого ссылаясь на URL-адрес HTTPS, ошибка больше не возникает, но автозаполнение по-прежнему не работает?

JamesMatson 20.07.2018 13:45
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
59
0

Другие вопросы по теме