我正在使用rack-cors中间件从一个站点向我的rails应用程序发出跨域请求(尽管我不认为这个问题特定于rack-cors)。当我用firebug检查控制台输出时,我注意到只有一个请求发出,POST请求。 OPTIONS请求是秘密进行的吗?
同样,当我检查我的服务器日志时,我看到了
Started OPTIONS "/australia_post_api_connections" for 127.0.0.1 at 2013-01-08 16:06:18 -0800
但没有相应的
Completed 200 OK in 1441ms (Views: 85.2ms | ActiveRecord: 0.0ms)
这是正常的,还是意味着OPTIONS请求没有运行完成?我应该从CORS预检OPTIONS请求中获得什么样的响应?
答案 0 :(得分:5)
CORS OPTIONS响应应返回200秒,以及各种Access-Control-*
标题。
我的猜测是你在rails日志中没有看到它作为“Completed 200”,因为在Rails框架中发生日志记录之前,它正在Rack中间件中发生。
您可以在Firebug / Chrome的开发人员工具网络面板中查看请求/响应标头,以验证一切正常进行。我不相信Firebug会隐藏OPTIONS请求,但如果返回Access-Control-Max-Age
,则可能会缓存OPTIONS请求的结果。