golang http + jsonrpc Zugriff von der Webseite

Ich habe Go's @ verwendnet/rpc undnet/rpc/jsonrpc paketiert ein wenig, um Verbindungen zwischen Go-Prozessen herzustellen. Ich frage mich jedoch, ob es eine Möglichkeit gibt, eine Verbindung zu einem HTTP-JSONRPC-Server nur mit dem Server-Tool aus der Standardbibliothek herzustellen Ich möchte es nicht tun, wenn ich nicht muss.

Dies ist das grundlegende Server-Setup, das ich habe:

arith := new(server.Arith)

server := rpc.NewServer()
server.Register(arith)

server.HandleHTTP(rpc.DefaultRPCPath, rpc.DefaultDebugPath)

listener, e := net.Listen("tcp", ":4321")
if e != nil {
    log.Fatal("listen error:", e)
}
defer listener.Close()

http.Serve(listener, http.DefaultServeMux)

Und ich möchte in der Lage sein, dies von einer Webseite oder einem einfachen Befehlszeilen-CURL-Aufruf aus zu erreichen - nur ein regulärer POST.

Allerdings diese Zeile:http: //golang.org/src/net/rpc/server.go? s = 20445: 20475 # L670 gibt an, dass von einem HTTP-Client erwartet wird, dass er ein CONNECT ausgibt, die JSON-RPC-Anforderung direkt in den Stream schreibt und die Antwort auf dieselbe Weise zurückerhält. Ich weiß nicht, ob dies überhaupt von einem Browser aus möglich ist, aber es ist sicherlich nicht so verbreitet oder kompatibel wie ein einfacher POST.

Gibt es eine Möglichkeit, einen JSON-RPC-Server zu starten, den ich nur mithilfe des guten alten XMLHttpRequest POSTEN kann?

EDIT: Mist - das obige verwendet nicht einmal das jsonrpc-Zeug - das versucht wahrscheinlich, Gob zu verwenden, aber was auch immer - das Problem ist dasselbe - der Code in src / net / rpc / server.go wird POSTs nicht verarbeiten Daher wird diese Route insgesamt unabhängig vom Server-Codec nicht funktionieren.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage