2012-07-06 3 views
0

시나리오 : Javascript에서 XMLRPC 호출을해야하는 웹 페이지가 있고 mimic.js를 사용합니다. XMLRPC 서버는 Python으로 작성되었으며 SimpleXMLRPCServer를 기반으로합니다.CORS XMLRPC via mimic.js

웹 페이지와 서버가 같은 컴퓨터에 있으면 모두 정상입니다. 페이지가 다른 컴퓨터에서 오는 경우 CORS 문제가 발생합니다. 나는 내가 XMLRPC 호출이 서버를 통해 점점 것을 알고있는 지점에 도착하기 위해 관리했습니다, 아직 페이지가 여전히 불평 :

XMLHttpRequest cannot load http://server.machine.com:8888/. Origin http://page.machine.com is not allowed by Access-Control-Allow-Origin. 
(mimic.js:8) NETWORK_ERR: XMLHttpRequest Exception 101: A network error occurred in synchronous requests. 

이 내가 SimpleXMLRPCRequestHandler의 내 서브 클래스에 추가 한 것입니다 내 서버 :

 def do_OPTIONS(myself): 
      myself.send_response(200) 
      myself.send_header("Access-Control-Allow-Origin", "*") 
      myself.send_header("Access-Control-Allow-Headers","Content-Type") 
      myself.end_headers() 
      myself.wfile.write("OK") 

나의 이해는 서버가 다른 시스템에 (새 주소 지정 이외의) 때 내가 XMLRPC 호출을에 대해 아무것도 변경할 필요가 없습니다 것입니다.

그래서 (마침내!) 질문 :이 퍼즐의 어떤 부분이 빠졌습니까? 대답이 "다른 XMLRPC 클라이언트 라이브러리가 필요합니다"라고 간단하면 대체에 대한 제안이 가장 환영받을 것입니다.

답변

1

ACA-Origin & ACA 헤더 헤더가 POST 요청 (실제 XMLRPC 메서드 호출)의 응답에 추가되어야한다고 가정합니다.