Я недавно боролся с чем-то похожим.
Проблема в том, что сервер Python XMLRPC не включает заголовки CORS (и не отвечает на запрос HTTP OPTIONS) в запрос XML-RPC.
IЯ использую Twisted для обслуживания ресурса XMLRPC и решил, что добавление ответа OPTIONS и заголовков к запросу XMLRPC.
Мой код выглядит примерно так:
from twisted.web.xmlrpc import withRequest
class MyResourceEndpoint(xmlrpc.XMLRPC):
def render_OPTIONS(self, request):
request.setHeader('Access-Control-Allow-Origin', '*')
request.setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS')
request.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept')
return ""
@withRequest
def xmlrpc_my_method(self, request, my_params):
request.setHeader('Access-Control-Allow-Origin', '*')
request.setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS')
request.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept')
return "Whatever your method do"
root = resource.Resource()
root.putChild('', MyResourceEndpoint())
reactor.listenTCP(9090, server.Site(root))
reactor.run()