Ruby 如何在本地运行cgi文件?

Ruby 如何在本地运行cgi文件?,ruby,cgi,localhost,Ruby,Cgi,Localhost,我不熟悉服务器端编程 我正在学习的教程有两个文件:“index.html”和“auto.cgi” 我知道如何通过python的内置服务器或ruby的webrick从本地服务器运行文件,这就是我正在做的 但是,当我对“cgi”文件发出ajax请求时,我得到以下错误 500 (Internal Server Error) 为什么会这样 补充资料 ajax调用如下所示: ajax({ type: "GET", url: "auto.cgi?to=" + "jason", onSu

我不熟悉服务器端编程

我正在学习的教程有两个文件:“index.html”和“auto.cgi”

我知道如何通过python的内置服务器或ruby的webrick从本地服务器运行文件,这就是我正在做的

但是,当我对“cgi”文件发出ajax请求时,我得到以下错误

500 (Internal Server Error)
为什么会这样

补充资料

ajax调用如下所示:

ajax({
   type: "GET", 
   url: "auto.cgi?to=" + "jason",
   onSuccess: function(html){
       //do stuff
   }
});
“auto.cgi”文件如下所示:

#!/usr/bin/ruby

require 'cgi'

# Get the 'q' parameter out of the incoming Query String
cgi = CGI.new
q = cgi.params['to']

# Our limited 'database' contains a few users
# with their username and full name
data = [
    {
        "user" => "bradley",
        "name" => "Bradley S"
    },
    {
        "user" => "jason",
        "name" => "Jason S"
    },
    {
        "user" => "john",
        "name" => "John R"
    },
    {
        "user" => "josh",
        "name" => "Josh K"
    },
    {
        "user" => "julia",
        "name" => "Julia W"
    }
]

# Make sure that we print out the correct HTML header
print "Content-type: text/html\n\n";

# Now we "search" through the data
for row in data
    # Looking for users that match our auto-complete search
    if(row["user"] =~ /#{q[0]}/i || row["name"] =~ /#{q[0]}/i)

        print '<li id="' + row["user"] + '">
            <img src="icons/' + row["user"] + '_icon.jpg"/>
            <div>
                <span id="username">' + row["user"] + '</span>
                <span id="fullname">' + row["name"] + '</span>
            </div>
        </li>'
    end    
end

虽然我不认为您的脚本会像预期的那样工作,因为在您可能需要regexp时,您是如何将行与字符串匹配的,但我看不到一个明显的错误会导致错误。您的本地服务器应该有控制台输出或错误日志文件,或者两者都有-您应该查看是否已将错误消息与500一起发送到客户端。将错误详细信息记录在此日志中是正常的web服务器行为way@NeilSlater谢谢你的正则表达式!我从控制台收到了500条错误消息…这可能是服务器配置,与脚本内容无关。您能介绍一下您正在测试的服务器、如何启动它以及它是如何配置的吗。@NeilSlater因此,我进一步研究了服务器配置,并在官方文档中找到了这个配置:python-m http.server-cgi 8000谢谢您为我指明了正确的方向!!我仍然有其他错误,但我认为与此无关。