XML-RPC Javascript 不支持的方法 ('OPTIONS')

1 投票
4 回答
3428 浏览
提问于 2025-04-16 01:17

我们有一个用Python实现的XML-RPC服务器,我正在尝试写一个简单的JavaScript应用程序来向它发送请求。无论我用什么库,我总是会遇到这个错误:

Unsupported method ('OPTIONS')

老实说,我对XML-RPC和HTTP的底层协议理解得不够透彻。不过我知道在Python中这样做是有效的:

client = xmlrpclib.ServerProxy('http://localhost:2002')
client.T.run_process()

但是下面的JavaScript却不行:

var client = new xmlrpc_client("", "localhost", 2002, "http")
var msg = new xmlrpcmsg("T.run_process()", {})
lert(client.send(msg));

我在使用这个JavaScript库。但无论我用哪个库,似乎都会出现同样的错误,所以我猜我们的服务器可能不符合某些协议,而Python对此并不在意,是这样吗?

4 个回答

0

朱利安可能是对的。你可以查看这个回答,里面有更多的细节和一些相关链接。

2

在Python中使用标准的SimpleXMLRPCServer时,我发现往请求处理方法里添加以下内容似乎有效:

class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ('/RPC2',)

    def do_OPTIONS(self):
        self.send_response(200)
        self.end_headers()

    # Add these headers to all responses
    def end_headers(self):
        self.send_header("Access-Control-Allow-Headers", 
                         "Origin, X-Requested-With, Content-Type, Accept")
        self.send_header("Access-Control-Allow-Origin", "*")
        SimpleXMLRPCRequestHandler.end_headers(self)
1

这可能是在讲CORS的相关内容。

撰写回答