2011-02-07 53 views
17

我使用OmniAuth允許用戶使用他們的Google OpenID帳戶登錄。當我嘗試使用WEBrick以開發模式登錄時,出現WEBrick :: HTTPStatus :: RequestURITooLarge錯誤。當我將它部署到我的Rails主機時,它工作正常。 是否有不同的Web服務器,我應該使用,而不是WEBrick?OmniAuth Google OpenID WEBrick :: HTTPStatus :: RequestURITooLarge

回答

17

奇怪,我不知道WEBrick的URI長度限制是什麼。你可以試試thinhttp://code.macournoyer.com/thin/。我有時候會在本地使用這個功能,它似乎很好。

+0

我不得不承認,在網址很長......它包含了很多的查詢字符串 – SZH 2011-02-08 13:11:34

+1

我將提交錯誤與OmniAuth或看看他們是否提供了不使用查詢字符串的解決方案。 – raidfive 2011-02-08 18:18:30

+1

薄工作完美! – 2011-08-18 23:35:45

11

正如在用於OmniAuth的railscast 236中所提到的,WEBrick在OpenID提供的長url中遇到了問題。給我工作的解決方案是將Mongrel添加到您的gem文件中。

寶石 '雜種', '1.2.0.pre2'

0

我遇到了同樣的問題與Caseproof's DataTables gem使用Webbrick和表有很多列(> 15)。切換到瘦服務器也解決了我的問題。 DataTables是一個用於創建表的javascript/jquery插件。

3

將名爲webrick.rb的文件添加到config\initializers目錄。

if defined?(WEBrick::HTTPRequest) 
    WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240) 
end