Я работаю в проекте, который был сделан кем-то другим. Я пытаюсь отследить, где он добавляет эти данные в строку 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"
в тег формы, и теперь все работает.