Отправка значения из javascript в jsp (с помощью jquery)
-
03-07-2019 - |
Вопрос
прямо сейчас у меня есть страница jsp, которая позволяет сортировать некоторые элементы, когда все готово и нажата ссылка, функция javascript преобразует всю информацию в xml (текст в переменной), после этого мне нужно снова отправить этот xml на страницу jsp, я попытался поместить информацию в скрытый ввод и отправить форму, отправив с помощью $.post и еще нескольких функций jquery, но ничего не сработало.Есть какие-нибудь идеи?
в моем JSP я читаю сообщение следующим образом:
<% out.println(request.getParameter("data")); %>
Это не сработает:
xml = "<xml></xml>";
$("#form").submit(function(){
alert("JS: " + $("#data").text());
$("#data").text(xml);
});
Это либо:
xml = "<xml></xml>";
$("#data").text(xml);
$("#form").submit();
замена .text на .html не работает
Любые идеи приветствуются, спасибо
Решение
Вероятно, вы идете здесь не в ту сторону.Вы не предоставили html-код, но я предполагаю, что это что-то вроде этого:
<form method="POST" id="form">
<input type="hidden" id="data" />
</form>
Если это верно, то вы должны сказать $("#data").val(xml);
вместо того, чтобы text()
или html()
поскольку они изменяют сопоставляемую вещь с текстом или html, который вы предоставляете.Это должно сработать для вашего текущего решения.
Также я бы предложил взглянуть на jQuery $.post()
и другие в качестве альтернативы упаковке всего в формате xml, если только это действительно не то, что вы хотите использовать в бэкэнде.Могло бы быть проще просто создать объект javascript со всеми значениями, обозначенными некоторыми именами, и передать его одному из jQuery $.post(), $.get()
, и т.д.вот так:
var values = {name: "John", surname: "Doe"};
values.age = 25;
$.post("index.jsp", values); // this will result in a post with 3 variables: name, surname, age
На самом деле до меня только сейчас дошло, что вы также можете отправить свой xml таким образом (если только вы не предпочитаете свой способ ведения дел):
$.post("index.jsp", {data: "<xml><whatever-else-needs-to-be-in-here/></xml>"});
Возможно, вы захотите подробнее рассказать о себе здесь: Документы Ajax @ jQuery
Другие советы
Попытка использовать jQuery Ajax API - вы можете использовать его для отправки произвольных данных через GET или POST, и вам не нужно настраивать скрытую форму или что-либо еще.
Вы всегда можете использовать XMLHttpRequest для отправки данных.Это можно сделать с помощью нашего приложения without user interaction для такого элемента, как кнопка отправки формы.В jQuery есть встроенная функциональность для оказания помощи в обработке таких запросов.