Как я могу избежать этой ошибки Пассажира при использовании Paperclip в Rails? - PullRequest
1 голос
/ 15 декабря 2010

Я часто получаю эту ошибку в моем Apache error_log при попытке загрузить изображение. Это происходит практически каждый второй запрос. Это настолько надежно, что если дважды щелкнуть «отправить» на странице загрузки изображения, сработает второй запрос:

[ pid=53580 thr=0x7fff707b3c20 file=ext/apache2/Hooks.cpp:859 time=2010-12-15 14:13:00.309
]: Unexpected error in mod_passenger: An error occurred while receiving HTTP upload data:     

The timeout specified has expired (70007)
  Backtrace:
     in 'void Hooks::receiveRequestBody(request_rec*, const char*, std::string&)'(Hooks.cpp:1271)

Это, кажется, также происходит со мной с attachment_fu. Любая идея, почему так много запросов зависает, и что я могу сделать, чтобы избежать этого?

1 Ответ

2 голосов
/ 03 марта 2011

Возможно, вы столкнулись с ошибкой загрузки Safari .В прошлом меня это тоже укусило несколько раз.

Исправление, по-видимому, состоит в том, чтобы выполнить запрос ajax прямо перед отправкой формы.Я уже некоторое время использую приведенный ниже фрагмент jQuery, и он работает хорошо.Если вы предпочитаете простой javascript, в приведенной выше ссылке есть не-jQuery-пример.

<script type="text/javascript">
  $('form').live('submit', function(){
    if (/AppleWebKit|MSIE/.test(navigator.userAgent)){
      $.ajax({url:"/ping/close", async:false});
    }
  });
</script>
...