将应用程序从本地移动到Web服务器时出现400 Bad Request错误

时间:2014-07-14 15:45:43

标签: javascript python web-hosting

我有一个在本地服务器上运行完美的金字塔应用程序,但当我将其移动到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调用中的警报外,一切正常。所以似乎帖子失败了,或者视图中出现了问题。有什么想法吗?

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

1 个答案:

答案 0 :(得分:0)

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

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

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