【问题标题】:400 Bad Request error when when moving application from local to web server将应用程序从本地移动到 Web 服务器时出现 400 Bad Request 错误
【发布时间】:2014-07-14 15:45:42
【问题描述】:

我有一个可以在本地服务器上完美运行的金字塔应用程序,但是当我将其移至 Web 服务器 (Dreamhost) 时,我收到以下错误:

400 Bad Request:
Bad request (GET and HEAD requests may not contain a request body)

有问题的代码是 Javascript 中的以下 ajax:

function summary_ajax(sName){

        $.ajax({
            type: "POST",
            url: "summary",
            dataType: "json",
            data: {
                'ccg_name': sName,
            },
            async: false,
            success: function(data) {

                //alert("In ajax success function")   <-----------  This never executes
                lValues = data.lValues;
                lLabels = data.lLabels;
            }, 
        });
    };
    return (lValues, lLabels);

并在views.py中处理:

@view_config(route_name="ccg_map_summary_ajax",renderer="json")
def ccg_map_summary_ajax(self):


    sCCG = self.request.POST.get('ccg_name')

    fData = open('pyramidapp/static/view_specific_js/ajax_summary_data.js')
    dData = json.load(fData)

    lLabels = dData[sCCG].keys()
    lValues = dData[sCCG].values()


    return {
        'lLabels' : lLabels,
        'lValues' : lValues,
        }

我通过放置alert() 函数进行了一些测试(它很慢,因为服务器每隔这么多分钟才重新加载一次脚本),除了 ajax 调用中的警报之外,一切都执行得很好。因此,似乎要么帖子失败,要么视图出现问题。有什么想法吗?

那么,这段代码中有什么东西可以在我的本地服务器(在 Pyramid 中)工作,但在 Web 服务器(Dreamhost)中出现故障吗?
本地服务器和 Web 服务器中的文件结构相同。我不明白为什么它不应该,但 fData 仍会打开文件进行读取吗?

【问题讨论】:

  • 如果您无法访问服务器中的日志,祝您好运。如果问题是一个未处理的异常,您可能能够捕获它并显示它的消息,只需在您的请求处理周围放置一个大的 try-except。

标签: javascript python web-hosting


【解决方案1】:

对于其他人,我发现了问题:

我上面指定的路径是在我的系统上有效但在服务器上无效的相对路径,因为工作目录明显不同。因此,我没有使用相对路径,而是将脚本更改为具有正确的绝对路径。

要查找当前工作目录路径,只需在终端输入pwd

【讨论】:

    猜你喜欢
    • 2023-01-03
    • 1970-01-01
    • 2015-06-29
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    相关资源
    最近更新 更多