Как правильно послать XML в POST запросе
От: LowCoder  
Дата: 15.07.09 07:43
Оценка:
Посоветуйте плиз – как правильно послать запрос POST посредством JavaScript и передать в запросе XML объект и как правильно принять его в PHP скрипте?
Сейчас я делаю так (xmlHttp экземпляр объекта XMLHttpRequest)

xmlHttp.open("POST", "./sample.php", true);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
xmlHttp.send( 'x=<?xml version="1.0" encoding="UTF-8" ?> <data><a>4</a><b>5</b></data>' );

а как это делать правильно? Так как мне кажется, что я делаю неправильно и/или коряво. И еще — как должен выглядеть правильный код на стоне клиента на php? А то конструкция

$result = $_POST['x'];


И последующий её разбор средствfми XML тоже представляются мне какими то корявыми. Я почему спрашиваю – смотрел руководство по ажакс на странице
http://jibbering.com/2002/4/httprequest.html
(параграф Using XMLHTTP with GOOGLE's SOAP API)
и там запорос передают просто как xml документ но не приводится код на стороне сервера – непонятно как в пхп это все обрабатывается.
Re: Как правильно послать XML в POST запросе
От: Mamut Швеция http://dmitriid.com
Дата: 15.07.09 11:43
Оценка:
LC>
LC> $result = $_POST['x'];
LC>


LC> И последующий её разбор средствfми XML тоже представляются мне какими то корявыми. Я почему спрашиваю – смотрел руководство по ажакс на странице

LC> http://jibbering.com/2002/4/httprequest.html
LC> (параграф Using XMLHTTP with GOOGLE's SOAP API)
LC> и там запорос передают просто как xml документ но не приводится код на стороне сервера – непонятно как в пхп это все обрабатывается.

В РНР это обрабатывается при помощи функций для работы с XML: http://md.php.net/xml
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re: Как правильно послать XML в POST запросе
От: Laurel  
Дата: 15.07.09 14:33
Оценка:
Здравствуйте, LowCoder, Вы писали:

LC>и там запорос передают просто как xml документ но не приводится код на стороне сервера – непонятно как в пхп это все обрабатывается.


Если я правильно понял проблему, то нужно что-то вроде


$raw = file_get_contents('php://input'); 
$xml = simplexml_load_string($raw);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.