我有一个带有 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
我发现了这个“Fixing 501 error code The client should specify an valid request type。即使在此之后,如果 Web 服务器响应不正确,那么只需升级 Web 服务器即可解决问题。”
我确定请求没问题 - 相同的代码已经在 localhost 和 Heroku 上运行了几个月。因此,它必须与我正在使用的新虚拟服务器有关。
新服务器是 Bitnami Rails 堆栈。它安装了 node.js。我正在运行 Apache、Passenger 和 PG。
我将如何升级服务器以解决问题???
更新3
此咖啡脚本得到相同的响应:
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 个瘦服务器上运行 Rails 应用程序。我仍然收到 501 PUT - jquery 错误!!!!
如果我在端口 3000 上独立运行 Thin,它可以正常工作。
如果我在端口 80 上独立运行 Thin,我会收到相同的 JQUERY PUT 501 错误。
因此,我们使用端口 80 的服务器出了点问题。