Как исключить входные данные из модели, отображаемой в URL - PullRequest
0 голосов
/ 10 ноября 2019

Я работаю в проекте, который был сделан кем-то другим. Я пытаюсь отследить, где он добавляет эти данные в строку URL при отправке. Для того, что я делаю, это не нужно и портит мне перенаправление.

Что делает этот код, так это то, что он принимает входные данные от модального модуля для создания файла, а затем я могу использовать их в SaveAjax и оттуда в мой контроллер Action, который фактически создает файл.

Я не так хорош, когда дело доходит до JavaScript, но я не вижу ничего в этом коде, что будет делать это. Может быть, свежий взгляд может увидеть то, о чем я не знаю или не знаю.

Вот новый код файла:

  newPage : function () {

    var newPageModal = $('#new-page-modal');

    newPageModal.modal("show").find("form").off("submit").submit(function( event ) {

        var title = $("input[name=title]", newPageModal).val();
        var startTemplateUrl = $("select[name=startTemplateUrl]", newPageModal).val();
        var fileName = $("input[name=fileName]", newPageModal).val();
        var dir = $("input[name=url]", newPageModal).val();

        var name = title.replace(/\W+/g, '-');

        fileName = fileName.replace(/[^A-Za-z0-9\.\/]+/g, '-');
        var route = "/Files/HMIBuilder/";
        var sl = "/";
        var url = route + dir + sl + fileName;

        return HMI.Builder.saveAjax(url, startTemplateUrl, dir, function (data) {
                //HMI.FileManager.loadPage(name);
                HMI.FileManager.scrollBottom();
                newPageModal.modal("hide");
        });
    });

},

Вот код для saveAjax:

    saveAjax: function(fileName, startTemplateUrl, dir, callback)
{
    var data = {};
    data["fileName"] = (fileName && fileName != "") ? fileName : HMI.FileManager.getCurrentUrl();
    data["startTemplateUrl"] = startTemplateUrl;
    data["dir"] = dir;
    if (!startTemplateUrl || startTemplateUrl == null)
    {
        data["html"] = this.getHtml();
    }

    $.ajax({
        type: "POST",
        url: 'Home/Save',
        data: data,
        cache: false,
        success: function (data) {

            //if (callback) callback(data);
            alert(data);
        },
        error: function (data) {
            alert(data.responseText);

        }
    });                 
},

Есть ли в этом коде что-то, что могло бы сделать вводотображаться в строке URL как длинная строка? или что-то, что он называет, делает это? Если вам нужно увидеть другой код, просто дайте мне знать.

Спасибо за вашу помощь!

Обновление:

Я провел некоторый поиск, и кажется, что он появляется в адресной строке, потому что он отправляется на страницу, на которой он находится. на, а не сам сценарий. В моем случае это делало оба. Исправление должно было добавить

event.preventDefault()

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

method="post" 

в тег формы, и теперь все работает.

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