Ruby 如何在本地运行cgi文件?
我不熟悉服务器端编程 我正在学习的教程有两个文件:“index.html”和“auto.cgi” 我知道如何通过python的内置服务器或ruby的webrick从本地服务器运行文件,这就是我正在做的 但是,当我对“cgi”文件发出ajax请求时,我得到以下错误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
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谢谢您为我指明了正确的方向!!我仍然有其他错误,但我认为与此无关。