XML-RPC Javascript 不支持的方法 ('OPTIONS')
我们有一个用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的相关内容。