2012-02-22 5 views
1

서버 (C 코드)와 클라이언트 (자바 스크립트) 간의 XMLRPC 연결을 시도하고 있습니다. 클라이언트가 두 개의 번호를 보내고 서버가이를 추가하고 다시 돌아옵니다. (C 코드) 서버는 다음과 같은 XML 형태로 데이터를 얻을 것으로 예상되는 :자바 스크립트의 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. XMLRPC 클라이언트와 서버를 C 코드로 구현하면 문제가 없습니다.

+0

calc.php가 수신하는 요청을 붙여 넣을 수 있습니까? – spicavigo

+0

안녕하세요, 이걸로 솔을 얻었나요? –

답변

0

올바른 URL을 XmlRpcRequest 함수에 전달하지 않습니다. mimic-sourceforge 주소를 참조해야합니다. ,
...

<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> 

...
당신이 로컬 호스트에서 크롬에서이 작업을 실행하는 경우 (이것은 당신이 당신의 자신의 XML-RPC 서버를 실행하고 그냥이 코드를 시도하지 않는 가정한다) 결국 CORS 문제가 발생할 것입니다. 이 스레드를 따라 도움을 받으십시오. Response to preflight request doesn't pass access control check