如何在JSON-RPC服务器上响应HTTP OPTIONS请求

我的JSON-RPC客户端(使用dojo JSON-RPC的浏览器)在myserver.com/12345(Python 2.5,SimpleJSONRPCServer)上向我的JSON-RPC服务器发出JSON-RPC请求(dojo.callRemote).

然后,服务器获取带有标题“OPTIONS / HTTP / 1.1”的HTTP请求,认情况下它无法处理,因此我为此请求编写了一个自定义处理程序.

来自浏览器的请求标头说:

OPTIONS / HTTP/1.1
Host: myserver:12345
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8) Gecko/20100214 Linux Mint/8 (Helena) Firefox/3.5.8 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.7,de;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Origin: http://myserver.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: x-requested-with

我发送的响应看起来像这样:

HTTP/1.0 200 OK
Server: BaseHTTP/0.3 Python/2.5
Date: Mon, 05 Apr 2010 18:58:34 GMT
Access-Control-Allow-Method: POST
Access-Control-Allow-Headers: POST
Allow: POST
Content-Type: application/json-rpc
Content-length: 0

但在浏览器中我收到以下错误

错误:无法加载http://myserver.com:12345状态:0

我验证了JSON-Service可以从网上访问.

现在的问题是,浏览器(比方说,Firefox)期望响应听众说什么?或者问题可能在其他地方?

解决方法:

CORS Specification.

(顺便说一句,有一个HTTP头文件注册表,请参阅http://www.iana.org/assignments/message-headers/prov-headers.htmlhttp://www.iana.org/assignments/message-headers/perm-headers.html,这可能会指向正确的规范).

相关文章

我有一个网格,可以根据更大的树结构编辑小块数据.为了更容易...
我即将开始开发一款教育性的视频游戏.我已经决定以一种我可以...
我正在使用带有Grails2.3.9的Dojo1.9.DojoNumberTextBox小部...
1.引言鉴于个人需求的转变,本系列将记录自学arcgisapiforja...
我正在阅读使用dojo’sdeclare进行类创建的语法.描述令人困惑...
我的团队由更多的java人员和JavaScript经验丰富组成.我知道这...