jquery-ui の並べ替え可能なリストを備えた Rails アプリがあります。ユーザーがあるリストから別のリストにドラッグすると、wostatus_id フィールドが更新されます。そのため、jquery Ajax の更新に失敗しています。
これは、localhost と Heroku で正常に動作します。しかし、アプリを Bitnami Virtual Server + Rails の実装に移行しています。関係あるかわかりませんが、新サーバーでnode.jsを使っています。
この新しいサーバーでは、ブラウザー コンソールに次のエラーが表示されます。
PUT http://ndeavor.ameipro.com/workorders/2 501 (Not Implemented)
これはコーヒースクリプトです:
$("#sort1, #sort2, #sort3, #sort4, #sort5, #sort6, #sort7").sortable
connectWith: ".connectedSortable"
cursor: "move"
update: ->
$.post($(this).data('update-url'), $(this).sortable('serialize'))
receive: (event, ui) ->
str_id = $(ui.item).attr('id')
woid = str_id.split('_')[1]
$.update "/workorders/" + woid,
workorder:
wostatus_id: $(this).data('wostatus-id')
助けてくれてありがとう!
更新1
fullcalendar-rails の月ビューを使用して、イベントをある日から別の日にドラッグすると、同じエラーが発生します。
UDPATE2
「501エラーコードを修正しています。クライアントは有効なリクエストタイプを指定する必要があります。その後でも、Webサーバーが正しく応答しない場合は、Webサーバーをアップグレードして問題を解決する必要があります。」
リクエストは問題ないと確信しています。同じコードが localhost と Heroku で何ヶ月も実行されています。つまり、私が使用している新しい仮想サーバーと関係があるはずです。
新しいサーバーは Bitnami Rails スタックです。node.js がインストールされています。私はApache、Passenger、およびPGを実行しています。
サーバーをアップグレードして問題を解決するにはどうすればよいですか???
更新3
この coffeescript は同じ応答を取得します。
updateEvent = (the_event) ->
$.update "/events/" + the_event.id,
event:
title: the_event.title,
starts_at: "" + the_event.start,
ends_at: "" + the_event.end,
description: the_event.description
更新4
Apache が PUT の使用を停止している可能性はありますか? 多分https.confのいくつかの設定?
更新5
Thin !!!! を使用すると、同じアプリが正常に動作します。そこで、Nginx と Thin を試してみます。
更新6
私はそれを働かせることができません。そこで、Nginx と 5 つのシン アプリ サーバーを試してみます。
更新7
これで、Nginx と 5 つの Thin サーバーで Rails アプリを実行できます。まだ 501 PUT - jquery エラーが発生します !!!!
ポート 3000 でスタンドアロンで Thin を実行すると、問題なく動作します。
ポート 80 で Thin スタンドアロンを実行すると、同じ JQUERY PUT 501 エラーが発生します。
そのため、ポート 80 を使用しているサーバーに問題があります。