XMLRPC клиент в Javascript - PullRequest
       354

XMLRPC клиент в Javascript

1 голос
/ 22 февраля 2012

Я пытаюсь установить соединение XMLRPC между сервером (код C) и клиентом (в Javascript).Клиент отправляет два номера, а сервер добавляет их и возвращает обратно.Сервер (в коде C) должен получать данные в следующей форме XML:

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>sample.add</methodName>
<params>
<param><value><i4>a</i4></value></param> // a and b are numbers to be added
<param><value><i4>b</i4></value></param> // a and b are numbers to be added
</params>
</methodCall>

Я использовал библиотеку мнемосхемы для JS.Итак, вот сценарий на стороне клиента:

<title>Mimic - JavaScript XML-RPC Client</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<script src="mimic/mimic.js"language="javascript"></script>
....
<center>
<input type="text" id="n1"/>
<input type="text" id="n2"/>    
<input type="button"  onclick="Add_Request();" value="Request"/>
...
<script language="javascript">
          function Add_Request() {
           var method = "sample.add";
           var request = new XmlRpcRequest("demos/calc.php", method);
           request.addParam(document.getElementById("n1"));
           request.addParam(document.getElementById("n2"));
           var response = request.send();
           alert(response.parseXML());
        }
</script>

Но клиент не работает.Где я ошибся или ...?В какой форме Javascript отправляет данные XML на сервер?Любой совет будет оценен

Заранее спасибо !!!

PS Реализация XMLRPC клиента и сервера в коде C работает нормально.

1 Ответ

0 голосов
/ 06 марта 2017

Вы не передаете правильный URL-адрес функции XmlRpcRequest.Вам нужно сослаться на адрес mimic-sourceforge.(Предполагается, что вы не используете свой собственный сервер XML-RPC и просто пробуете этот код)
...

    <script language="javascript">
          function Add_Request() {
           var method = "sample.add";
           var request = new XmlRpcRequest("http://mimic-xmlrpc.sourceforge.net/demos/calc.php", method);
           request.addParam(document.getElementById("n1"));
           request.addParam(document.getElementById("n2"));
           var response = request.send();
           alert(response.parseXML());
        }
</script>

...
Если вы запускаете его на Chrome изlocalhost, вы в конечном итоге получите проблему с CORS.Для получения справки следуйте этой теме: Ответ на предпечатный запрос не проходит проверку контроля доступа

...