Forum Webscript.Ru
Общие => Веб-технологии => Тема начата: u78 от 20 Апреля 2006, 16:05:31
-
подскажите, как сформировать xml на клиенте и отправить его на сервер (или хотя бы как сформировать)
задача такая: пользователь вводит данные на страничке, но не в форме, а в таблице, необходимо отправить данные на сервер
заранее благодарю
-
u78
"Вы не должны этого хотеть".
Гораздо правильнее делать это на сервере.
[off](кросспост в "html" убил, ибо незачем)[/off]
-
[OFF]
или хотя бы как сформироват
ручками придётся долго писать, быстрее генерировать на сервере.
как сформировать xml на клиенте
что смотря что надо, смотрим примеры и пишем....
отправить его на сервер
пишем скрипт который бы принемал метод POST и посылаем данные используя метод POST
[/OFF]
-
формировать научился, теперь проблема отослать на сервер, пытаюсь отослать с помощью ActiveX вот так:
JScript
var srvXmlHttp = new ActiveXObject("Msxml2.ServerXMLHTTP.4.0");
но система ругается, что какая dll должна быть зарегистрирована, неужели нет стандартного зарегистрированного компонента?
поясню задачу:
есть веб-приложение, на странице пользователь заполняет документ (приходная накладная) то что он ввёл необходимо отправить на сервер, лучше чем xml придумать трудно для этого, так как надо описать в каком поле какие данные и их тип (дата, ссылка на справочник и пр) количество строк у документа может быть произвольным, вот почему xml и вот почему именно на клиенте
-
u78
1.Выбранный aX - не вариант, лучше что-то вроде ActiveXObject("Msxml2.XMLHTTP") или ActiveXObject("Microsoft.XMLHTTP") (а совесм хорошо - обойтись стандартным XMLHttpRequest()).
2.u78: то что он ввёл необходимо отправить на сервер
Для этого есть формы и post. Не надо перекладывать бизнес-логику на клиент, без этого можно и нужно обойтись. Выдай клиенту нужные поля и забери их данные. Всё.
u78: количество строк у документа может быть произвольным
Страху нет никакого. Post вполне может передавать и массивы данных (имею в виду var[]).
-
спасибо. работает Msxml2.XMLHTTP
а он c IE идёт? а Microsoft.XMLHTTP?
кстати а есть ограничение на размер передаваемого сообщения? Post или Get.
можно и формой передавать, но дело в том, что сервер не знает какие ему поля передадут, к тому же каждое поле имеет свой тип (дата, ссылка на справочник, число) каждый тип требует своего сохранения, в принципе можно и с формой заморочиться - но придётся разбираться с именами, где у меня содержание, где тип поля и прочее, по сложности выльется в разбор xml
ещё важное отличие - submit перезагрузит страницу, а httprequest нет, в xml уже всё структурировано как мне надо, отдельно заголовок документа, отдельно строки, внутри строки поля, каждое поле имеет свой тип, каждая строка может иметь свой id (тогда не создавать в базе, а изменить)
бизнес логики здесь нет - собираются поля и отправляются на сервер. всё.
-
u78
u78:
Msxml2.XMLHTTP
Этот вроде идет для IE6 плюс с офисом,
а вот Microsoft.XMLHTTP с IE по-моему с 5.01
u78:
есть ограничение
Да, у GET-а лучше рассчитывать на килобайт,
у POST-а - два метра (хотя и то, и другое можно менять различными настройками сервера).
u78:
сервер не знает какие ему поля передадут
Тогда получается потенциальная дырка в безопасности (malformed xml), плюс injection от способов обработки. Надо серьезно подойти к секьюрности.
Делай как знаешь. Если тебе так проще.
Плюс к тому, обрати внимание на возможности Office03 XML (можно задавать схемы и валидацию, а там по-секьюрнее браузера будет), InfoPath опять же. Кстати, InfoPath07 спокойно дружит и с IE, и с Gecko.