我正在尝试在服务器(C代码)和客户端( Javascript)之间建立XMLRPC连接。客户端发送两个数字,服务器将它们相加并返回。服务器(在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使用了mimic库。下面是客户端脚本:
<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数据发送到服务器?如有任何建议,不胜感激。
提前感谢!
附注:用C代码实现XMLRPC客户端和服务器运行良好。
发布于 2017-03-06 16:04:51
您没有将正确的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>..。
如果你从localhost在chrome上运行它,你最终会得到一个CORS问题。请关注以下帖子以获取帮助:Response to preflight request doesn't pass access control check
https://stackoverflow.com/questions/9390781
复制相似问题