Вопрос

прямо сейчас у меня есть страница 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 есть встроенная функциональность для оказания помощи в обработке таких запросов.

http://docs.jquery.com/Ajax

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top