Если серверный код является опцией, вы можете использовать собственный сценарий php CURL в качестве посредника для пересылки вашего запроса третьей стороне в реальном формате xml. Я не уверен, что CURL поставляется со стандартной установкой PHP,
и если это не вариант, вы могли бы вместо этого использовать fsocketopen (хотя лично я думаю, что тактика сложнее). Но CURL достаточно прост в установке и чрезвычайно полезен для того, чтобы позволить php отправлять запросы, как если бы это был браузер. Разница, которая может вас заинтересовать, заключается в том, что она действительно позволяет вам установить заголовок «Content-type: text / xml».
Итак, ваша HTML-форма отправляет некоторые обычные значения GET или POST в ваш php-скрипт. Затем пусть этот личный php-скрипт преобразует их в формат XML, который ожидает третья сторона. (Не забудьте поставить перед ним тег <?xml version="1.0" encoding="ISO-8859-1"?>
с любыми значениями атрибутов, которые вам подходят.) А затем отправьте его с помощью этого кода:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-type: text/xml',
'Content-length: '.strlen($xmlRequest),
));
$output = curl_exec($ch);
curl_close($ch);