Вы, вероятно, идете не туда. Вы не предоставили 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 docs