Azure Web App - Javascript не работает должным образом - PullRequest
0 голосов
/ 24 октября 2019

У меня есть веб-сайт, работающий в Azure на .NET Framework 4.7. На этом веб-сайте у меня есть форма, которая при заполнении и отправке содержит скрипт, использующий JQuery и AJAX, который получает данные из формы и отправляет их в наш пользовательский API.

Я добавил один новыйполе к форме. Теперь, когда я нажимаю кнопку отправки, скрипт отправляет ее нашему API. Однако это новое поле всегда равно нулю.

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

Я проверил, что я использую точно такой же код на Azure и когда я F12. Я изменил динамическое кэширование на 0 и перезапустил сайт, но это не решает проблему. Влияет ли это на WEBSITE_RUN_FROM_PACKAGE или WEBSITE_NODE_DEFAULT VERSION каким-либо образом?

Или js ссылается на другой файл (уменьшенный или какой-то другой)? Я полагаю, что проблема связана с тем, что JS не дает мне новое поле, но я не уверен, почему это не так, когда я могу сделать это совершенно нормально в F12.

Я также использую Umbraco API, ноЯ сомневаюсь, что это проблема, поскольку API может правильно получать данные.

    var model = {
        FirstName: $("#member-register #user_FirstName").val(),
        LastName: $("#member-register #user_LastName").val(),
        PostCode: $("#member-register #user_PostCode").val()
    };

    $.ajax({
        url: "/Umbraco/Api/Member/RegisterMember",
        method: "POST",
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(model),
        success: function (response) {
            $("#register").modal('hide');
            if (response.Success) {
                // Clear the form fields otherwise it will be visible when register is clicked again.
                $("#member-register #user_FirstName").val("");
                $("#member-register #user_LastName").val("");
                $("#member-register #user_PostCode").val("");
            } else {
                $("#registerFailure").modal('show');
            }
        },
        error: function (response) {
            $("#register").modal('hide');
            $("#registerFailure").modal('show');
        }
    })

1 Ответ

0 голосов
/ 28 октября 2019

Оказывается, мы используем клиентскую среду зависимостей (https://github.com/Shandem/ClientDependency).. JS, на который ссылалась Azure, была старой, и нам пришлось обновить версию в ClientDependency.config, чтобы она перепаковывала и использовалапоследняя версия.

<clientDependency version="20191028" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
...