python脚本bluehost中脚本头的过早结束

时间:2014-12-01 01:00:02

标签: python ajax http-headers cgi bluehost

我正在使用Bluehost托管一个网站,我正在尝试使用AJAX按钮单击执行python脚本。但是,每次单击该按钮时,服务器都会响应python脚本的500错误。更具体地说,这是错误:

  

[Sun Nov 30 17:49:26 2014] [错误] [客户174.61.70.33]提前结束   脚本标题:Steap.py,referer:http://steap.co/

这是AJAX代码:

$(document).ready(function(){
            $("#steambutton").click(function() {
                DisplayLoadingDiv();
                $.ajax({
                    type: "POST",
                    url: "http://steap.co/cgi-bin/Steap.py",
                    data: {steamid: "<?php echo $steamprofile['steamid']?>"},
                    success: function(response) {
                        $("#steamdiv").html(response);  
                        $("#phisherbutton").show()
                    },
                    error: function(response) {
                        $("#steamdiv").html("An error occured. Please try again.");
                    }
                });
            });
});

基本上,div在执行0.01秒后显示"An error occured. Please try again.",并且控制台显示服务器在尝试加载python脚本资源时响应500错误。

Steap.py

http://pastebin.com/F9THyt3u

有关为何发生这种情况的任何想法?

1 个答案:

答案 0 :(得分:0)

我很确定问题是,您未在Steap.py中正确形成HTTP响应。特别重要的是HTTP/1.1 200 OK\n部分( Status Line

我在计算机中设置了原始TCP套接字实现(使用SocketServer),并通过执行以下操作在Web浏览器中正确呈现页面:

    import datetime
    body=("<html><title>Hello</title>"
          "<body>"
          "<div id=\"div-name\">"
          "%s"
          "</br></br>"
          "</div>"
          "</body>"
          "</html>" % foo(bar))

    reply=("HTTP/1.1 200 OK\n"
           "Date: %s\n"
           "Content-Type: text/html\n"
           "Content-Length: %s\n"
           "Connection: close\n"
           "\n"
           "%s" 
           % (datetime.datetime.utcnow().isoformat(' '),
              len(body),
              body)
    )
    print reply

这看起来很好地显示在Chrome中:

enter image description here

毋庸置疑,但这是我的foo(bar)函数:

def foo(bar):
    return "Test test"

所有这些说,我真的,真的,真的学习如何在 Bluehost “区域”中安装预制服务器(例如DjangoTornado) (或者你想叫它)。我倾向于龙卷风(它的使用非常基础,但它会帮助很多,所以你不必自己“手动”编写标题和正文)