0
場景:我有一個網頁,需要從Javascript進行XMLRPC調用,並使用mimic.js來做到這一點。 XMLRPC服務器是使用基於SimpleXMLRPCServer的python編寫的。CORS XMLRPC通過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客戶端庫」一樣簡單,那麼對於替換的建議就會受到歡迎。