2012-02-22 67 views
1

我试图在服务器(C代码)和客户端(使用Javascript)之间建立XMLRPC连接。客户端发送两个号码,服务器添加它们并返回。 (C代码) 服务器应该在以下XML形式获取数据:Javascript中的XMLRPC客户端

<?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数据发送到服务器的形式是什么? 任何意见,将不胜感激

在此先感谢!

P.S.用C代码实现XMLRPC客户端和服务器可以很好地工作。

+0

您可以粘贴calc.php正在接收的请求吗? – spicavigo 2012-02-22 08:23:44

+0

嗨,你有没有解决这个问题? – 2012-08-02 06:55:50

回答

0

您没有将正确的URL传递给XmlRpcRequest函数。您需要引用模拟源代码地址。 (这是假设你没有运行自己的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从本地主机上运行此,你最终会得到一个CORS问题。 请按照以下线索寻求帮助: Response to preflight request doesn't pass access control check