【发布时间】:2013-03-05 20:24:50
【问题描述】:
我正在尝试使用以下代码来检查是否正在保存数据:
$parent.find('button[name=save]').click(function () {
$.ajax({
url: "/help.json",
data: {"data": handsontable.getData()}, //returns all cells' data
dataType: 'json',
type: 'POST',
success: function (res) {
if (res.result === 'ok') {
$console.text('Data saved');
}
else {
$console.text('Save error');
}
},
error: function () {
$console.text('Save error, not working');
}
});
});
我正在为服务器端代码使用 rails。如果我手动创建 /help.json.erb 并将以下内容添加到页面中
{
"result": "ok"
}
我在尝试使用 ajax 代码时收到“数据已保存”消息。
但是,如果我尝试使用 ruby 创建 /help.json 文件,则会收到“保存错误,无法正常工作”错误。我在控制器中创建 /help.json 文件的 ruby 代码如下:
class StaticPagesController < ApplicationController
respond_to :html, :json
def home
end
def help
the_hash = {"result"=>"ok"}
respond_with(the_hash)
end
end
以上代码生成一个/help.json文件
{"result": "ok"}
但我没有收到“数据已保存”消息
当我手动创建 json 文件时它可以正常工作但如果我尝试使用 ruby 则不行的原因是什么?
我的路线文件的相关部分是:
root to: 'static_pages#home'
match '/help', to: 'static_pages#help'
进一步检查,我收到的错误消息为 500(内部服务器错误)
【问题讨论】:
-
您能否发布 routes.rb(至少是与该控制器相关的相关行)和更多控制器代码?
-
你能不能试试
curl -v到你的终点,看看返回的标头是否有任何不同? -
@fmendez 我从控制器和路由文件中添加了更多代码
-
@NeilSlater 很抱歉,我不确定如何对我的端点执行 curl -v
-
看来您解决了自己的问题。作为记录,在您的服务运行时从命令行:
curl -v http://<server>:<port>/help.json应该显示所有标题以及响应正文 - 一个方便的 Ruby 服务器端快速测试,因此您可以确定它是 Ruby 还是 JavaScript你需要看看。
标签: ruby ajax json handsontable