【问题标题】:CORS XMLRPC via mimic.js通过模仿.js 的 CORS XMLRPC
【发布时间】:2012-07-06 19:36:23
【问题描述】:

场景:我有一个网页需要从 Javascript 进行 XMLRPC 调用,并使用了mimic.js 来实现。 XMLRPC 服务器是用 python 编写的,基于 SimpleXMLRPCServer。

当网页和服务器在同一台机器上时,一切正常。如果页面来自不同的机器,我会遇到 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 客户端库”,那么我们将非常欢迎您提出替换建议。

【问题讨论】:

    标签: cors xmlrpcclient simplexmlrpcserver


    【解决方案1】:

    似乎还需要将 ACA-Origin 和 ACA-Headers 标头添加到来自 POST 请求(实际的 XMLRPC 方法调用)的响应中。

    【讨论】:

      猜你喜欢
      • 2014-02-10
      • 2023-03-17
      • 2020-12-31
      • 1970-01-01
      • 2010-12-16
      • 1970-01-01
      • 1970-01-01
      • 2016-11-15
      • 1970-01-01
      相关资源
      最近更新 更多